Hvordan installere og bruke 'yum-utils' for å opprettholde Yum og øke ytelsen


Uansett om Fedora begynner å ta i bruk dnf som den nye pakkebehandleren og standard pakkebehandlingsbiblioteket, vil den ikke erstatte den gode gamle yum-pakkebehandleren for godt i andre spinoff-distribusjoner (som Red Hat Enterprise Linux ( >RHEL) og CentOS) til den har vist seg å være like pålitelig som yum og mer solid (ifølge Fedora Project wiki, fra og med 15. november, 2015, dnf er fortsatt i testbar tilstand). Dermed vil dine yum-management-ferdigheter tjene deg godt i en stund.

Av den grunn vil vi i denne guiden introdusere deg til yum-utils, en samling verktøy som integreres med yum for å utvide dens opprinnelige funksjoner på flere måter, og dermed gjøre den kraftigere og enklere å bruke.

Installere yum-utils i RHEL/CentOS

Yum-utils er inkludert i basisrepoen (som er aktivert som standard), så det er like enkelt å installere det i en hvilken som helst Fedora-basert distribusjon:

yum update && yum install yum-utils

Alle verktøyene som tilbys av yum-utils installeres automatisk med hovedpakken, som vi vil beskrive i neste avsnitt.

Utforsk verktøy levert av yum-utils-pakken

Verktøyene som tilbys av yum-utils er oppført på man-siden:

man yum-utils

Her er 10 av disse yum-verktøyene vi trodde du ville være interessert i:

1. Feilsøk en pakke

debuginfo-install installerer debuginfo-pakkene (og deres avhengigheter) som kreves for å feilsøke <pakkenavn> i tilfelle krasj eller mens du utvikler applikasjoner som bruker en bestemt pakke.

For å feilsøke en pakke (eller andre kjørbare filer), må vi også installere gdb (GNU-feilsøkeren) og bruke den til å starte et program i feilsøkingsmodus.

For eksempel:

gdb $(which postfix)

Kommandoen ovenfor vil starte et gdb-skall hvor vi kan skrive inn handlinger som skal utføres. For eksempel vil run (som vist i bildet nedenfor) starte programmet, mens bt (ikke vist) vil vise stabelsporet (også kjent som backtrace) ) av programmet, som vil gi en liste over funksjonskall som førte til et bestemt punkt i programmets kjøring (ved å bruke denne informasjonen kan både utviklere og systemadministratorer finne ut hva som gikk galt i tilfelle en krasj).

Andre tilgjengelige handlinger og deres forventede resultater er oppført i man gdb.

2. Finn depot for installerte pakker

Følgende kommando viser hvilket lager de installerte pakkene ble installert fra:

find-repos-of-install httpd postfix dovecot

Hvis den kjøres uten argumenter, vil find-repos-of-install returnere hele listen over installerte pakker.

3. Fjern dupliserte eller foreldreløse pakker

package-cleanup administrerer pakkeopprydding, duplikater, foreldreløse pakker (programmer installert fra en annen kilde enn de for øyeblikket konfigurerte depotene) og andre avhengighetsinkonsekvenser, inkludert fjerning av gamle kjerner som vist i følgende eksempel:

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

Du trenger ikke å bekymre deg for at den siste kommandoen skader kjernen din. Det vil bare påvirke gamle kjernepakker (versjoner eldre enn den som kjører) som ikke er nødvendig lenger.

4. Finn ut pakkeavhengighetsliste

repo-graf returnerer en fullstendig pakkeavhengighetsliste i dot-format for alle pakkene som er tilgjengelige fra de konfigurerte repositoriene. Alternativt kan repo-graph returnere den samme informasjonen etter repository hvis den brukes med alternativet --repoid=.

La oss for eksempel se avhengighetene for hver pakke i oppdateringslageret:

repo-graph --repoid=updates | less

I kommandoen ovenfor sender vi utdata fra repo-graf til mindre for enklere visualisering, men du kan alternativt omdirigere den til en lokal fil for senere inspeksjon:

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

I begge tilfeller kan vi se at iputils-pakken avhenger av systemd og openssl-libs.

5. Sjekk liste over uløste avhengigheter

repoclosure leser metadataene til konfigurerte repositories, sjekker avhengigheter til pakker som er inkludert i dem og viser en liste over uløste avhengigheter for hver pakke:

repoclosure

6. Hvordan sjekke de nyeste eller eldste pakkene i en katalog

repomanage spør etter en katalog med rpm-pakker og returnerer en liste over de nyeste eller eldste pakkene i en katalog. Dette verktøyet kan være nyttig hvis du har en katalog der du lagrer flere .rpm-pakker med forskjellige programmer.

Når den kjøres uten argumenter, returnerer repomanage de nyeste pakkene. Hvis den kjøres med flagget --old, vil det returnere de eldste pakkene:

ls -l
cd rpms
ls -l rpms
repomanage rpms

Vær oppmerksom på at endring av navnet på rpm-pakkene IKKE vil påvirke hvordan repomanage fungerer.

7. Spør etter Yum Repositories for å få informasjon om pakken

repoquery spør etter yum repositories og får tilleggsinformasjon om pakker, enten de er installert eller ikke (avhengigheter, filer inkludert i pakken og mer).

For eksempel er htop (Linux Process Monitoring ) for øyeblikket ikke installert på dette systemet, som du kan se nedenfor:

which htop
rpm -qa | grep htop

Anta nå at vi vil liste opp avhengighetene til htop, sammen med filene som er inkludert i en standardinstallasjon. For å gjøre det, kjør følgende to kommandoer, henholdsvis:

repoquery --requires htop
repoquery --list htop

8. Dump alle installerte RPM-pakker i zip-filen

yum-debug-dump lar deg dumpe en komplett liste over alle pakker du har installert, alle pakker som er tilgjengelige i ethvert arkiv, viktig konfigurasjon og systeminformasjon i en zippet fil.

Dette kan være nyttig i tilfelle du ønsker å feilsøke et problem som har oppstått. For enkelhets skyld gir yum-debug-dump filen navnet yum_debug_dump--, som lar oss spore endringene over tid .

yum-debug-dump

Som med enhver komprimert tekstfil, kan vi se innholdet ved hjelp av kommandoen zless:

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

Hvis du trenger å gjenopprette konfigurasjonsinformasjonen fra yum-debug-dump, kan du bruke yum-debug-restore for å gjøre det:

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

9. Laste ned kilde RPM fra Yum Repositories

yumdownloader laster ned RPM-kildefiler fra depoter, inkludert deres avhengigheter. Nyttig for å opprette et nettverkslager som kan åpnes fra andre maskiner med begrenset Internett-tilgang.

Yumdownloader lar deg ikke bare laste ned de binære RPM-ene, men også kildene (hvis brukt med --source-alternativet).

La oss for eksempel lage en katalog som heter htop-filer der vi lagrer RPM(ene) som trengs for å installere programmet ved hjelp av rpm. For å gjøre det, må vi bruke --resolve-bryteren sammen med yumdownloader:

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

10. Synkroniser et eksternt Yum-lager til en lokal katalog

reposync er nært beslektet med yumdownloader (faktisk støtter de nesten de samme alternativene), men gir en betydelig fordel. I stedet for å laste ned binære eller kilde RPM-filer, synkroniserer den et eksternt depot til en lokal katalog.

La oss synkronisere det velkjente EPEL-lageret til en underkatalog kalt epel-local i den gjeldende arbeidskatalogen:

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

Vær oppmerksom på at denne prosessen vil ta en stund ettersom den laster ned 8867-pakker:

Når synkroniseringen er fullført, la oss sjekke hvor mye diskplass som brukes av vårt nyopprettede speil av EPEL-depotet ved å bruke du-kommandoen:

du -sch epel-local/*

Nå er det opp til deg om du vil beholde dette EPEL-speilet eller bruke det til å installere pakker i stedet for å bruke en ekstern. I det første tilfellet må du huske at du må endre /etc/yum.repos.d/epel.repo tilsvarende.

11. Reparer uferdige eller avbrente Yum-transaksjoner

yum-complete-transaction er en del av yum-utils-programmet som fanger opp uferdige eller avbrutt yum-transaksjoner på et system og prøver å fullføre dem.

For eksempel, når vi oppdaterer Linux-serverne via yum pakkebehandler, sender den noen ganger en advarsel som lyder som følger:

Det gjenstår uferdige transaksjoner. Du kan vurdere å kjøre yum-complete-transaction først for å fullføre dem.

For å fikse slike advarselsmeldinger og løse slike problemer, kommer yum-complete-transaction-kommandoen inn i bildet for å fullføre de uferdige transaksjonene, den finner de ufullstendige eller avbrutt yum-transaksjonene i transaction-all*- og transaksjonsferdige*-filer som finnes i katalogen /var/lib/yum.

Kjør kommandoen yum-complete-transaction for å fullføre ufullstendige yum-transaksjoner:


yum-complete-transaction --cleanup-only

Nå vil yum-kommandoer kjøre uten advarslene om ufullstendige transaksjoner.


yum update

Merk: Dette tipset er foreslått av en av våre vanlige lesere Mr. Tomasi kommentarfeltet her.

Sammendrag

I denne artikkelen har vi dekket noen av de mest nyttige verktøyene som tilbys gjennom yum-utils. For en fullstendig liste kan du se man-siden (man yum-utils).

I tillegg har hvert av disse verktøyene en egen man-side (se for eksempel man reposync), som er den primære kilden til dokumentasjon du bør referere til hvis du vil lære mer om dem.

Hvis du bruker et minutt på å sjekke man-siden til yum-utils, vil du kanskje finne et annet verktøy du vil at vi skal dekke mer i dybden i en egen artikkel. I så fall, eller hvis du har spørsmål, kommentarer eller forslag til denne artikkelen, kan du gjerne gi oss beskjed om hvilken ved å sende oss et notat ved å bruke kommentarskjemaet nedenfor.