Kako namestiti in uporabiti yum-utils za vzdrževanje Yum-a in povečanje njegove učinkovitosti


Ne glede na to, da je Fedora začela dobro uporabljati upravitelja paketov yum v drugih distribucijah spinoff (kot sta Red Hat Enterprise Linux (RHEL) in CentOS), dokler se ni izkazal za tako zanesljivega kot yum in bolj trdnega (po wiki Fedora Project, kot je z dne 15. novembra 2015, dnf je še vedno v preizkusnem stanju). Tako vam bodo vaše spretnosti upravljanja z yumom služile še kar nekaj časa.

Iz tega razloga vam bomo v tem priročniku predstavili yum-utils, zbirko pripomočkov, ki se integrirajo z yumom, da na več načinov razširijo svoje izvorne funkcije, s čimer je močnejša in enostavnejša za uporabo.

Namestitev yum-utilov v RHEL/CentOS

Yum-utils je vključen v osnovni repo (ki je privzeto omogočen), zato je njegova namestitev v katero koli distribucijo, ki temelji na Fedori, tako preprosta:

# yum update && yum install yum-utils

Vsi pripomočki, ki jih nudi yum-utils, se samodejno namestijo z glavnim paketom, kar bomo opisali v naslednjem poglavju.

Raziščite pripomočke, ki jih zagotavlja paket yum-utils

Orodja, ki jih nudijo yum-utils, so navedena na njegovi priročni strani:

# man yum-utils

Tu je 10 teh pripomočkov, za katere smo mislili, da vas bodo zanimali:

debuginfo-install namesti pakete debuginfo (in njihove odvisnosti), potrebne za odpravljanje napak v primeru zrušitve ali med razvojem aplikacij, ki uporabljajo določen paket.

Za razhroščevanje paketa (ali katere koli druge izvedljive datoteke) bomo morali namestiti tudi gdb (razhroščevalec GNU) in z njim zagnati program v načinu za odpravljanje napak.

Na primer:

# gdb $(which postfix)

Zgornji ukaz bo zagnal lupino gdb, kjer lahko vtipkamo dejanja, ki jih je treba izvesti. Na primer, zaženi (kot je prikazano na spodnji sliki) zažene program, medtem ko bt (ni prikazan) prikaže sled sklada (znano tudi kot povratno sledenje) programa, ki bo zagotovil seznam klicev funkcij, ki so privedli do določeno točko pri izvajanju programa (s pomočjo teh informacij lahko razvijalci in skrbniki sistema ugotovijo, kaj je šlo narobe v primeru zrušitve).

Drugi razpoložljivi ukrepi in njihovi pričakovani rezultati so navedeni v man gdb.

Naslednji ukaz prikazuje, iz katerega repozitorija so bili nameščeni trenutno nameščeni paketi :

# find-repos-of-install httpd postfix dovecot

Če se zažene brez argumentov, bo find-repos-of-install vrnil celoten seznam trenutno nameščenih paketov.

package-cleanup upravlja čiščenje paketov, dvojnike, osirotele pakete (programe, nameščene iz vira, ki ni trenutno konfiguriran repozitorij) in druge nedoslednosti odvisnosti, vključno z odstranjevanjem starih jeder, kot je prikazano v naslednjem primeru:

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

Ni vam treba skrbeti, ali bo zadnji ukaz poškodoval vaše jedro. Vplival bo samo na stare pakete jedra (različice, starejše od trenutno delujočega), ki niso več potrebni.

repo-graf vrne celoten seznam odvisnosti paketov v pikčasti obliki za vse pakete, ki so na voljo v konfiguriranih repozitorijih. Druga možnost je, da lahko repo-graf iste podatke po repozitoriju vrne, če se uporablja z možnostjo --repoid= .

Oglejmo si na primer odvisnosti za vsak paket v skladišču posodobitev:

# repo-graph --repoid=updates | less

V zgornjem ukazu pošljemo izhod repo-grafa v manj za lažjo vizualizacijo, lahko pa ga tudi preusmerite v lokalno datoteko za kasnejši pregled:

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

V obeh primerih lahko vidimo, da je paket iputils odvisen od systemd in openssl-libs.

repoclosure prebere metapodatke konfiguriranih repozitorijev, preveri odvisnosti paketov, ki so v njih, in prikaže seznam nerešenih odvisnosti za vsak paket:

# repoclosure

repomanage poišče imenik s paketi rpm in vrne seznam najnovejših ali najstarejših paketov v imeniku. To orodje vam lahko pride prav, če imate imenik, v katerem shranite več paketov .rpm različnih programov.

Ko se izvrši brez argumentov, repomanage vrne najnovejše pakete. Če se zažene z zastavico --old , bo vrnil najstarejše pakete:

# ls -l
# cd rpms
# ls -l rpms
# repomanage rpms

Prosimo, upoštevajte, da sprememba imena paketov vrtljajev na minuto NE bo vplivala na to, kako deluje preusmeritev.

repoquery poizveduje po shrambah yum in dobi dodatne informacije o paketih, ne glede na to, ali so nameščeni ali ne (odvisnosti, datoteke, vključene v paket, in še več).

Na primer, htop (Linux Process Monitoring) trenutno ni nameščen v tem sistemu, kot lahko vidite spodaj:

# which htop
# rpm -qa | grep htop

Zdaj predpostavimo, da želimo navesti odvisnosti htop, skupaj z datotekami, ki so vključene v privzeto namestitev. Za to izvedite naslednja dva ukaza:

# repoquery --requires htop
# repoquery --list htop

yum-debug-dump vam omogoča, da v stisnjeno datoteko iztisnete celoten seznam vseh nameščenih paketov, vseh paketov, ki so na voljo v katerem koli repozitoriju, pomembnih konfiguracijskih in sistemskih informacij.

To vam lahko pride prav, če želite odpraviti težavo, ki se je pojavila. Za naše udobje yum-debug-dump poimenuje datoteko kot yum_debug_dump- -

# yum-debug-dump

Kot pri vsaki stisnjeni besedilni datoteki si lahko tudi z ukazom zless ogledamo njeno vsebino:

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

Če boste morali obnoviti podatke o konfiguraciji, ki jih nudi yum-debug-dump, lahko za to uporabite yum-debug-restore:

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

yumdownloader iz skladišč prenese izvorne datoteke RPM, vključno z njihovimi odvisnostmi. Uporabno za ustvarjanje omrežnega repozitorija, do katerega lahko dostopate z drugih strojev z omejenim dostopom do interneta.

Yumdownloader vam omogoča, da ne samo prenesete binarne RPM-je, temveč tudi izvorne (če se uporabljajo z možnostjo --source ).

Ustvarimo na primer imenik z imenom htop-files, kamor bomo shranili RPM-je, potrebne za namestitev programa s pomočjo rpm. Za to moramo uporabiti stikalo --resolve skupaj z yumdownloaderjem:

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

reposync je tesno povezan z yumdownloaderjem (dejansko podpirata skoraj enake možnosti), vendar ponuja precejšnjo prednost. Namesto da prenese binarne ali izvorne datoteke RPM, sinhronizira oddaljeno repozitorij v lokalni imenik.

Sinhronizirajmo znano repozitorij EPEL v podimenik, imenovan epel-local znotraj trenutnega delovnega imenika:

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

Upoštevajte, da bo ta postopek trajal kar nekaj časa, saj se prenaša 8867 paketov:

Po končani sinhronizaciji z ukazom du preverimo količino prostora na disku, ki ga uporablja novo ustvarjeno zrcalo repozitorija EPEL:

# du -sch epel-local/*

Zdaj je odvisno od vas, ali želite to ogledalo EPEL obdržati ali z njim namestiti pakete, namesto da uporabite oddaljenega. V prvem primeru upoštevajte, da boste morali /etc/yum.repos.d/epel.repo ustrezno spremeniti.

yum-complete-transakcija je del programa yum-utils, ki ujame nedokončane ali prekinjene yum transakcije v sistemu in jih poskuša dokončati.

Na primer, ko posodobimo strežnike Linux prek upravitelja paketov yum, včasih vrne opozorilno sporočilo, ki se glasi:

Preostale so še nedokončane transakcije. Razmislite o tem, da najprej izvedete yum-complete-transakcijo, da jih dokončate.

Če želite popraviti taka opozorilna sporočila in odpraviti takšno težavo, se prikaže ukaz yum-complete-transakcija za dokončanje nedokončanih transakcij, ki poišče tiste nepopolne ali prekinjene yum transakcije v datotekah * za vse transakcije in opravljene transakcije *, ki jih lahko najdete v/imenik var/lib/yum.

Za dokončanje nepopolnih transakcij yum zaženite ukaz yum-complete-transaction:

# yum-complete-transaction --cleanup-only

Zdaj se bodo ukazi yum izvajali brez nepopolnih opozoril o transakcijah.

# yum update

Opomba: Ta nasvet v oddelku za komentarje tukaj predlaga naš redni bralec, gospod Tomas.

Povzetek

V tem članku smo zajeli nekaj najbolj uporabnih pripomočkov, ki jih ponuja yum-utils. Za celoten seznam se lahko obrnete na stran z navodili ( man yum-utils ).

Poleg tega ima vsako od teh orodij ločeno stran z navodili (glejte na primer reposync man), ki je glavni vir dokumentacije, na katero se morate obrniti, če želite izvedeti več o njih.

Če si vzamete minuto časa, da preverite stran z informacijami o yum-utilih, boste morda našli drugo orodje, ki bi ga radi podrobneje obdelali v ločenem članku. Če je odgovor pritrdilen, ali če imate vprašanja, komentarje ali predloge v zvezi s tem člankom, nam sporočite katerega, tako da nam s pomočjo spodnjega obrazca za komentar oddate opombo.