Sådan installeres og bruges yum-værktøjer til at vedligeholde Yum og øge dets ydeevne


Uanset om Fedora begynder at vedtage yum-pakkehåndtering til gode i andre spin-off distributioner (såsom Red Hat Enterprise Linux (RHEL) og CentOS), indtil det har vist sig at være lige så pålideligt som yum og mere solidt (ifølge Fedora Project wiki, som af 15. november 2015 er dnf stadig i testbar tilstand). Dermed vil dine yum-management færdigheder tjene dig godt i stadig lang tid.

Af denne grund vil vi i denne vejledning introducere dig til yum-utils, en samling hjælpeprogrammer, der integreres med yum for at udvide sine oprindelige funktioner på flere måder, hvilket gør det mere kraftfuldt og lettere at bruge.

Installation af yum-utils i RHEL/CentOS

Yum-utils er inkluderet i base repo (som er aktiveret som standard), så det er lige så let at installere det i enhver Fedora-baseret distribution:

# yum update && yum install yum-utils

Alle hjælpeprogrammer leveret af yum-utils installeres automatisk sammen med hovedpakken, som vi vil beskrive i det næste afsnit.

Udforsk hjælpeprogrammer leveret af yum-utils Package

De værktøjer, der leveres af yum-utils, er angivet på dets man-side:

# man yum-utils

Her er 10 af disse yum-værktøjer, vi troede, du ville være interesseret i:

debuginfo-install installerer de debuginfopakker (og deres afhængigheder), der kræves for at debugge i tilfælde af et nedbrud eller under udvikling af applikationer, der bruger en bestemt pakke.

For at debugge en pakke (eller en hvilken som helst anden eksekverbar) skal vi også installere gdb (GNU debugger) og bruge den til at starte et program i debugging-tilstand.

For eksempel:

# gdb $(which postfix)

Ovenstående kommando starter en gdb-skal, hvor vi kan skrive handlinger, der skal udføres. For eksempel starter run (som vist på billedet nedenfor) programmet, mens bt (ikke vist) viser stacksporingen (også kendt som backtrace) for programmet, som giver en liste over funktionsopkald, der førte til en bestemt punkt i programmets udførelse (ved hjælp af disse oplysninger kan både udviklere og systemadministratorer finde ud af, hvad der gik galt i tilfælde af et nedbrud).

Andre tilgængelige handlinger og deres forventede resultater er angivet i man gdb.

Følgende kommando viser, hvilket lager de aktuelt installerede pakker blev installeret fra:

# find-repos-of-install httpd postfix dovecot

Hvis det køres uden argumenter, returnerer find-repos-of-install hele listen over aktuelt installerede pakker.

pakkeoprydning håndterer pakkeoprydning, duplikater, forældreløse pakker (programmer installeret fra en anden kilde end de aktuelt konfigurerede opbevaringssteder) og andre afhængighedskonsekvenser, herunder fjernelse af gamle kerner som vist i følgende eksempel:

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

Du behøver ikke bekymre dig om, at den sidste kommando beskadiger din kerne. Det påvirker bare gamle kernepakker (versioner, der er ældre end den, der kører i øjeblikket), som ikke længere er nødvendige.

repo-graf returnerer en fuld pakkeafhængighedsliste i prikformat for alle de pakker, der er tilgængelige fra de konfigurerede opbevaringssteder. Alternativt kan repo-graph returnere de samme oplysninger via arkivet, hvis det bruges med indstillingen --repoid= .

Lad os for eksempel se afhængighederne for hver pakke i opdateringslageret:

# repo-graph --repoid=updates | less

I ovenstående kommando sender vi output af repo-graf til mindre for lettere visualisering, men du kan alternativt omdirigere det til en lokal fil til senere inspektion:

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

I begge tilfælde kan vi se, at iputils-pakken afhænger af systemd og openssl-libs.

genlokering læser metadata for konfigurerede arkiver, kontrollerer afhængigheder af pakker inkluderet i dem og viser liste over uløste afhængigheder for hver pakke:

# repoclosure

repomanage forespørger en mappe med rpm-pakker og returnerer en liste over de nyeste eller ældste pakker i en mappe. Dette værktøj kan være nyttigt, hvis du har et bibliotek, hvor du gemmer flere .rpm-pakker med forskellige programmer.

Når den udføres uden argumenter, returnerer repomanage de nyeste pakker. Hvis det køres med --old flag, returnerer det de ældste pakker:

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

Bemærk, at ændring af navnet på rpm-pakkerne IKKE påvirker, hvordan ompolering fungerer.

repoquery forespørgsler yum repositories og får yderligere oplysninger om pakker, uanset om de er installeret eller ej (afhængigheder, filer inkluderet i pakken og mere).

For eksempel er htop (Linux Process Monitoring) ikke installeret i øjeblikket på dette system, som du kan se nedenfor:

# which htop
# rpm -qa | grep htop

Antag nu, at vi vil liste afhængighederne af htop sammen med de filer, der er inkluderet i en standardinstallation. For at gøre det skal du udføre henholdsvis to følgende kommandoer:

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

yum-debug-dump giver dig mulighed for at dumpe en komplet liste over alle pakker, du har installeret, alle pakker tilgængelige i ethvert lager, vigtig konfiguration og systeminformation i en zip-fil.

Dette kan være praktisk, hvis du vil fejle et problem, der er opstået. For vores bekvemmelighed navngiver yum-debug-dump filen som yum_debug_dump- -

# yum-debug-dump

Som med enhver komprimeret tekstfil kan vi se dens indhold ved hjælp af kommandoen zless:

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

Hvis du har brug for at gendanne konfigurationsoplysningerne leveret af yum-debug-dump, kan du bruge yum-debug-gendannelse til at gøre det:

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

yumdownloader downloader RPM-kildefiler fra arkiver, herunder deres afhængighed. Nyttigt at oprette et netværkslager, der skal tilgås fra andre maskiner med begrænset internetadgang.

Yumdownloader giver dig mulighed for ikke kun at downloade de binære RPM'er, men også kildeindstillingerne (hvis de bruges med indstillingen - source ).

Lad os f.eks. Oprette en mappe med navnet htop-filer, hvor vi gemmer de RPM (r), der er nødvendige for at installere programmet ved hjælp af rpm. For at gøre dette skal vi bruge kontakten --resolve sammen med yumdownloader:

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

reposync er nært beslægtet med yumdownloader (de understøtter faktisk næsten de samme muligheder), men tilbyder en betydelig fordel. I stedet for at downloade binære RPM-filer eller kilder synkroniserer det et eksternt lager til et lokalt bibliotek.

Lad os synkronisere det velkendte EPEL-arkiv med en underkatalog kaldet epel-local inde i den aktuelle arbejdsmappe:

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

Bemærk, at denne proces vil tage et stykke tid, da den downloader 8867-pakker:

Når synkroniseringen er afsluttet, skal vi kontrollere mængden af diskplads, der bruges af vores nyoprettede spejl af EPEL-arkivet ved hjælp af kommandoen du:

# du -sch epel-local/*

Nu er det op til dig, hvis du vil beholde dette EPEL-spejl eller bruge det til at installere pakker i stedet for at bruge en fjernbetjening. I det første tilfælde skal du huske på, at du bliver nødt til at ændre /etc/yum.repos.d/epel.repo i overensstemmelse hermed.

yum-komplet-transaktion er en del af yum-utils-programmet, der fanger ufærdige eller afbrudte yum-transaktioner på et system og forsøger at gennemføre dem.

For eksempel, når vi opdaterer Linux-serverne via yum-pakkehåndtering, sender det nogle gange en advarselsmeddelelse, der lyder som følger:

Der er ufærdige transaktioner tilbage. Du kan overveje at køre yum-complete-transaktion først for at afslutte dem.

For at rette sådanne advarselsmeddelelser og løse et sådant problem kommer yum-komplet-transaktionskommando ind i billedet for at fuldføre de ufærdige transaktioner, den finder de ufuldstændige eller afbrudte yum-transaktioner i transaktions-alle * og transaktions-udførte * filer, som kan findes i/kataloget var/lib/yum.

Kør kommandoen yum-complete-transaction for at afslutte ufuldstændige yum-transaktioner:

# yum-complete-transaction --cleanup-only

Nu kører yum-kommandoer uden de ufuldstændige advarsler om transaktioner.

# yum update

Bemærk: Dette tip foreslås af en af vores faste læsere Mr. Tomas i kommentarfeltet her.

Resumé

I denne artikel har vi dækket nogle af de mest nyttige hjælpeprogrammer, der leveres gennem yum-utils. For en komplet liste kan du henvise til mandsiden ( man yum-utils ).

Derudover har hvert af disse værktøjer en separat man-side (se f.eks. Man reposync), som er den primære dokumentationskilde, du skal henvise til, hvis du vil lære mere om dem.

Hvis du tager et øjeblik på at kontrollere mandsiden til yum-utils, vil du måske finde et andet værktøj, som du gerne vil have, at vi dækker mere dybtgående i en separat artikel. Hvis ja, eller hvis du har spørgsmål, kommentarer eller forslag til denne artikel, er du velkommen til at fortælle os hvilken, ved at sende os en note ved hjælp af nedenstående kommentarformular.