Kako instalirati i koristiti 'yum-utils' za održavanje Yum-a i poboljšanje njegovih performansi


Bez obzira na to što je Fedora počela da usvaja dnf kao novi menadžer paketa i podrazumevanu biblioteku za upravljanje paketima, ona neće zauvek zameniti dobri stari yum menadžer paketa u drugim spinoff distribucijama (kao što je Red Hat Enterprise Linux (RHEL) i CentOS) dok se ne pokaže pouzdanim kao yum i solidnijim (prema Fedora Project wiki, od 15. novembra, 2015, dnf je još uvijek u stanju za testiranje). Stoga će vam vaše upravljačke vještine služiti još neko vrijeme.

Iz tog razloga, u ovom vodiču ćemo vam predstaviti yum-utils, kolekciju uslužnih programa koji se integriraju sa yumom kako bi proširili njegove izvorne funkcije na nekoliko načina, čineći ga tako moćnijim i lakšim za korištenje.

Instaliranje yum-utils-a u RHEL/CentOS

Yum-utils je uključen u osnovni repo (koji je podrazumevano omogućen) tako da je instaliranje u bilo koju distribuciju zasnovanu na Fedora-i jednostavno kao:

yum update && yum install yum-utils

Svi uslužni programi koje pruža yum-utils se automatski instaliraju sa glavnim paketom, što ćemo opisati u sljedećem odjeljku.

Istražite uslužne programe koje pruža paket yum-utils

Alati koje pruža yum-utils su navedeni na njegovoj man stranici:

man yum-utils

Evo 10 onih yum uslužnih programa za koje smo mislili da će vas zanimati:

1. Otklanjanje grešaka u paketu

debuginfo-install instalira debuginfo pakete (i njihove zavisnosti) potrebne za otklanjanje grešaka u slučaju pada ili dok razvijaju aplikacije koje koriste određeni paket.

Da bismo otklonili greške u paketu (ili bilo kojem drugom izvršnom fajlu), također ćemo morati instalirati gdb (GNU debugger) i koristiti ga za pokretanje programa u modu za otklanjanje grešaka.

Na primjer:

gdb $(which postfix)

Gornja komanda će pokrenuti gdb shell gdje možemo upisivati akcije koje će se izvršiti. Na primjer, run (kao što je prikazano na donjoj slici) će pokrenuti program, dok će bt (nije prikazano) prikazati trag steka (također poznat kao traga unazad) ) programa, koji će pružiti listu poziva funkcija koji su doveli do određene tačke u izvršavanju programa (koristeći ove informacije, i programeri i administratori sistema mogu shvatiti šta je pošlo po zlu u slučaju pada).

Ostale dostupne radnje i njihovi očekivani rezultati su navedeni u man gdb.

2. Pronađite spremište instaliranih paketa

Sljedeća naredba pokazuje iz kojeg spremišta su instalirani trenutno instalirani paketi :

find-repos-of-install httpd postfix dovecot

Ako se pokrene bez argumenata, find-repos-of-install će vratiti cijelu listu trenutno instaliranih paketa.

3. Uklonite duplikate ili pakete bez roditelja

package-cleanup upravlja čišćenjem paketa, duplikatima, paketima bez roditelja (programi instalirani iz izvora koji nije trenutno konfigurisana spremišta) i drugim nedosljednostima ovisnosti, uključujući uklanjanje starih kernela kao što je prikazano u sljedećem primjeru:

package-cleanup --orphans
package-cleanup --oldkernels

Ne morate brinuti da će posljednja komanda oštetiti vaš kernel. To će samo utjecati na stare pakete kernela (verzije starije od trenutno pokrenutog) koji više nisu potrebni.

4. Saznajte listu ovisnosti o paketu

repo-graph vraća punu listu zavisnosti paketa u formatu tačka za sve pakete koji su dostupni iz konfigurisanih spremišta. Alternativno, repo-graph može vratiti iste informacije po spremištu ako se koristi s opcijom --repoid=.

Na primjer, pogledajmo ovisnosti za svaki paket u spremištu ažuriranja:

repo-graph --repoid=updates | less

U gornjoj naredbi šaljemo izlaz repo-grafa na manje radi lakše vizualizacije, ali ga možete alternativno preusmjeriti na lokalnu datoteku za kasniju inspekciju:

repo-graph --repoid=updates > updates-dependencies.txt

U oba slučaja, možemo vidjeti da paket iputils zavisi od systemd i openssl-libs.

5. Provjerite listu neriješenih ovisnosti

ponovno zatvaranje čita metapodatke konfiguriranih spremišta, provjerava zavisnosti paketa uključenih u njih i prikazuje listu neriješenih ovisnosti za svaki paket:

repoclosure

6. Kako provjeriti najnovije ili najstarije pakete u direktoriju

repomanage ispituje direktorij sa rpm paketima i vraća listu najnovijih ili najstarijih paketa u direktoriju. Ovaj alat može biti od koristi ako imate direktorij u koji pohranjujete nekoliko .rpm paketa različitih programa.

Kada se izvrši bez argumenata, repomanage vraća najnovije pakete. Ako se pokrene sa zastavom --old, vratit će se najstariji paketi:

ls -l
cd rpms
ls -l rpms
repomanage rpms

Imajte na umu da promjena naziva rpm paketa NEĆE uticati na to kako funkcioniše repomanage.

7. Upitajte Yum repozitorije da biste dobili informacije o paketu

repoquery ispituje yum spremišta i dobija dodatne informacije o paketima, bez obzira da li su instalirani ili ne (zavisnosti, fajlovi uključeni u paket i drugo).

Na primjer, htop (Linux Process Monitoring) trenutno nije instaliran na ovom sistemu, kao što možete vidjeti u nastavku:

which htop
rpm -qa | grep htop

Pretpostavimo sada da želimo da navedemo zavisnosti od htop, zajedno sa fajlovima koji su uključeni u podrazumevanu instalaciju. Da biste to učinili, izvršite sljedeće dvije naredbe, redom:

repoquery --requires htop
repoquery --list htop

8. Dump sve instalirane RPM pakete u Zip datoteku

yum-debug-dump vam omogućava da snimite kompletnu listu svih paketa koje ste instalirali, svih paketa dostupnih u bilo kojem spremištu, važne konfiguracije i sistemske informacije u zip fajl.

Ovo može biti korisno u slučaju da želite da otklonite problem koji se dogodio. Radi naše pogodnosti, yum-debug-dump imenuje fajl kao yum_debug_dump--, što nam omogućava da pratimo promjene tokom vremena .

yum-debug-dump

Kao i kod bilo koje komprimirane tekstualne datoteke, njen sadržaj možemo vidjeti pomoću naredbe zless:

zless yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz

Ako trebate vratiti informacije o konfiguraciji koje pruža yum-debug-dump, možete koristiti yum-debug-restore da to učinite:

yum-debug-restore yum_debug_dump-mail.linuxnewz.com-2015-11-27_08:34:01.txt.gz

9. Preuzimanje izvornih RPM-ova iz Yum repozitorija

yumdownloader preuzima izvorne RPM fajlove iz spremišta, uključujući njihove zavisnosti. Korisno za kreiranje mrežnog spremišta kojem će se pristupiti sa drugih mašina sa ograničenim pristupom Internetu.

Yumdownloader vam omogućava da preuzmete ne samo binarne RPM-ove već i izvorne (ako se koristi sa opcijom --source).

Na primjer, napravimo direktorij pod nazivom htop-files gdje ćemo pohraniti RPM(ove) potrebne za instaliranje programa pomoću rpm. Da bismo to učinili, moramo koristiti --resolve prekidač zajedno sa yumdownloaderom:

mkdir htop-files
cd htop-files
yumdownloader --resolve htop
rpm -Uvh 

10. Sinhronizirajte udaljeno Yum spremište u lokalni direktorij

reposync je blisko povezan sa yumdownloader (u stvari, podržavaju skoro iste opcije), ali nudi značajnu prednost. Umjesto preuzimanja binarnih ili izvornih RPM datoteka, on sinkronizira udaljeno spremište s lokalnim direktorijem.

Hajde da sinhronizujemo dobro poznato EPEL spremište sa poddirektorijumom pod nazivom epel-local unutar trenutnog radnog direktorijuma:

man reposync
mkdir epel-local
reposync --repoid=epel --download_path=epel-local

Imajte na umu da će ovaj proces potrajati dosta vremena jer preuzima 8867 pakete:

Kada se sinhronizacija završi, provjerimo količinu prostora na disku koju koristi naše novokreirano zrcalo EPEL repozitorija pomoću naredbe du:

du -sch epel-local/*

Sada je na vama da li želite zadržati ovaj EPEL ogledalo ili ga koristiti za instaliranje paketa umjesto korištenja udaljenog. U prvom slučaju, imajte na umu da ćete morati u skladu s tim izmijeniti /etc/yum.repos.d/epel.repo.

11. Popravite nedovršene ili prekinute Yum transakcije

yum-complete-transaction je dio yum-utils programa koji hvata nedovršene ili prekinute yum transakcije na sistemu i pokušava ih dovršiti.

Na primjer, kada ažuriramo Linux servere putem yum menadžera paketa ponekad izbacuje poruku upozorenja koja glasi kako slijedi:

Ostale su nezavršene transakcije. Možda biste trebali prvo pokrenuti yum-complete-transaction da ih završite.

Da popravi takve poruke upozorenja i riješi takav problem, naredba yum-complete-transaction dolazi u sliku da završi nedovršene transakcije, pronalazi one nepotpune ili prekinute yum transakcije u transaction-all* i transaction-done* datoteke koje se mogu naći u /var/lib/yum direktoriju.

Pokrenite naredbu yum-complete-transaction da završite nepotpune yum transakcije:


yum-complete-transaction --cleanup-only

Sada će yum komande raditi bez upozorenja o nepotpunoj transakciji.


yum update

Napomena: Ovaj savjet je predložio jedan od naših redovnih čitatelja g. Tomasu odjeljku za komentare ovdje.

Sažetak

U ovom članku smo pokrili neke od najkorisnijih uslužnih programa koje pruža yum-utils. Za potpunu listu, možete pogledati man stranicu (man yum-utils).

Dodatno, svaki od ovih alata ima zasebnu man stranicu (pogledajte, na primjer, man reposync), što je primarni izvor dokumentacije na koji biste se trebali obratiti ako želite saznati više o njima.

Ako odvojite minut da pogledate man stranicu yum-utils-a, možda ćete pronaći još jedan alat koji biste željeli da detaljnije pokrijemo u posebnom članku. Ako je tako, ili ako imate pitanja, komentara ili sugestija u vezi sa ovim člankom, slobodno nam javite koji od njih tako što ćete nam poslati napomenu pomoću obrasca za komentare ispod.