Linux-pakkehåndtering med Yum, RPM, Apt, Dpkg, Aptitude og Zypper - Del 9


Sidste august annoncerede Linux Foundation LFCS certificeringen ( Linux Foundation Certified Sysadmin ), en skinnende chance for systemadministratorer overalt at demonstrere gennem en præstationsbaseret eksamen, at de er i stand til at lykkes med den samlede operationelle support til Linux-systemer. En Linux Foundation-certificeret Sysadmin har ekspertisen til at sikre effektiv systemstøtte, fejlfinding og overvågning på første niveau, herunder endelig udstede eskalering til tekniske supportteam, når det er nødvendigt.

Se den følgende video, der forklarer om Linux Foundation-certificeringsprogrammet.

Denne artikel er en del 9 af 10-tutorial lange serier, i dag i denne artikel vil vi guide dig om Linux Package Management, der kræves til LFCS-certificeringseksamen.

Pakkehåndtering

Med få ord er pakkehåndtering en metode til installation og vedligeholdelse (som inkluderer opdatering og sandsynligvis også fjernelse) af software på systemet.

I de tidlige dage af Linux blev programmer kun distribueret som kildekode sammen med de krævede mandsider, de nødvendige konfigurationsfiler og mere. I dag bruger de fleste Linux-distributører som standard forudbyggede programmer eller sæt programmer kaldet pakker, der præsenteres for brugere klar til installation på den distribution. Et af Linux-vidundere er dog stadig muligheden for at få kildekoden til et program, der skal studeres, forbedres og kompileres.

Hvis en bestemt pakke kræver en bestemt ressource, såsom et delt bibliotek eller en anden pakke, siges det at have en afhængighed. Alle moderne pakkehåndteringssystemer giver en eller anden metode til afhængighedsopløsning for at sikre, at når en pakke installeres, installeres også alle dens afhængigheder.

Næsten al den software, der er installeret på et moderne Linux-system, findes på Internettet. Det kan enten leveres af distributionsleverandøren gennem centrale arkiver (som kan indeholde flere tusinder af pakker, som hver især er specielt bygget, testet og vedligeholdt til distributionen) eller være tilgængelig i kildekode, der kan downloades og installeres manuelt .

Fordi forskellige distributionsfamilier bruger forskellige emballagesystemer (Debian: * .deb /CentOS: * .rpm /openSUSE: * .rpm bygget specielt til openSUSE), er en pakke beregnet til en distribution ikke kompatibel med en anden distribution. Imidlertid vil de fleste distributioner sandsynligvis falde ind i en af de tre distributionsfamilier, der er omfattet af LFCS-certificeringen.

For at udføre opgaven med pakkehåndtering effektivt skal du være opmærksom på, at du har to typer tilgængelige hjælpeprogrammer: værktøjer på lavt niveau (som håndterer i backend den faktiske installation, opgradering og fjernelse af pakkefiler) og højt niveau værktøjer (som er ansvarlige for at sikre, at opgaverne med afhængighedsopløsning og metadata-søgning - ”data om dataene” - udføres).

Lad os se beskrivelsen af værktøjerne på lavt niveau og på højt niveau.

dpkg er en pakkehåndterer på lavt niveau til Debian-baserede systemer. Det kan installere, fjerne, give oplysninger om og opbygge * .deb-pakker, men det kan ikke automatisk downloade og installere deres tilsvarende afhængigheder.

Læs mere : 15 dpkg kommandoeksempler

apt-get er en pakkehåndterer på højt niveau til Debian og derivater og giver en enkel måde at hente og installere pakker, inklusive afhængighedsopløsning, fra flere kilder ved hjælp af kommandolinjen. I modsætning til dpkg fungerer apt-get ikke direkte med * .deb-filer, men med pakkens eget navn.

Læs mere : 25 apt-get kommandoeksempler

aptitude er en anden pakkehåndterer på højt niveau til Debian-baserede systemer og kan bruges til at udføre styringsopgaver (installation, opgradering og fjernelse af pakker, også automatisk håndtering af afhængighedsopløsning) på en hurtig og nem måde . Det giver den samme funktionalitet som apt-get og yderligere, såsom at tilbyde adgang til flere versioner af en pakke.

rpm er det pakkehåndteringssystem, der bruges af Linux Standard Base (LSB) -kompatible distributioner til håndtering af pakker på lavt niveau. Ligesom dpkg kan den forespørge, installere, kontrollere, opgradere og fjerne pakker og bruges oftere af Fedora-baserede distributioner, såsom RHEL og CentOS.

Læs mere : Eksempler på 20 omdr./min

yum tilføjer funktionaliteten i automatiske opdateringer og pakkehåndtering med afhængighedsstyring til RPM-baserede systemer. Som et værktøj på højt niveau, som apt-get eller aptitude, arbejder yum med arkiver.

Læs mere : 20 yum kommandoeksempler

Almindelig anvendelse af værktøjer på lavt niveau

De hyppigste opgaver, du vil udføre med værktøjer på lavt niveau, er som følger:

Ulempen ved denne installationsmetode er, at der ikke gives nogen afhængighedsopløsning. Du vil sandsynligvis vælge at installere en pakke fra en kompileret fil, når en sådan pakke ikke er tilgængelig i distributionens opbevaringssteder og derfor ikke kan downloades og installeres via et værktøj på højt niveau. Da værktøjer på lavt niveau ikke udfører afhængighedsopløsning, vil de afslutte med en fejl, hvis vi forsøger at installere en pakke med uopfyldte afhængigheder.

# dpkg -i file.deb 		[Debian and derivative]
# rpm -i file.rpm 		[CentOS / openSUSE]

Bemærk: Forsøg ikke at installere en * .rpm-fil på CentOS, der blev bygget til openSUSE eller omvendt!

Igen opgraderer du kun en installeret pakke manuelt, når den ikke er tilgængelig i de centrale arkiver.

# dpkg -i file.deb 		[Debian and derivative]
# rpm -U file.rpm 		[CentOS / openSUSE]

Når du først får fat på et allerede fungerende system, er chancerne for, at du vil vide, hvilke pakker der er installeret.

# dpkg -l 		[Debian and derivative]
# rpm -qa 		[CentOS / openSUSE]

Hvis du vil vide, om en bestemt pakke er installeret, kan du pibe output af ovenstående kommandoer til grep, som forklaret i manipuleringsfiler i Linux - del 1 i denne serie. Antag, at vi skal kontrollere, om pakken mysql-common er installeret på et Ubuntu-system.

# dpkg -l | grep mysql-common

En anden måde at afgøre, om en pakke er installeret.

# dpkg --status package_name 		[Debian and derivative]
# rpm -q package_name 			[CentOS / openSUSE]

Lad os f.eks. Finde ud af, om pakke sysdig er installeret på vores system.

# rpm -qa | grep sysdig
# dpkg --search file_name
# rpm -qf file_name

For eksempel, hvilken pakke installerede pw_dict.hwm ?

# rpm -qf /usr/share/cracklib/pw_dict.hwm

Almindelig brug af værktøjer på højt niveau

De hyppigste opgaver, du vil udføre med værktøjer på højt niveau, er som følger.

aptitude-opdatering opdaterer listen over tilgængelige pakker, og aptitude-søgning udfører den egentlige søgning efter package_name .

# aptitude update && aptitude search package_name 

I indstillingen Søg alle vil yum søge efter pakkenavn ikke kun i pakkenavne, men også i pakkebeskrivelser.

# yum search package_name
# yum search all package_name
# yum whatprovides “*/package_name”

Lad os antage, at vi har brug for en fil, hvis navn er sysdig . For at kende den pakke bliver vi nødt til at installere, lad os køre.

# yum whatprovides “*/sysdig”

hvad giver fortæller yum at søge i pakken, hvilket giver en fil, der matcher ovenstående regulære udtryk.

# zypper refresh && zypper search package_name		[On openSUSE]

Når du installerer en pakke, bliver du muligvis bedt om at bekræfte installationen, efter at pakkehåndteringen har løst alle afhængigheder. Bemærk, at kørsel af opdatering eller opdatering (i henhold til den pakkehåndtering, der bruges) ikke er strengt nødvendigt, men at holde installerede pakker opdateret er en god sysadmin-praksis af sikkerheds- og afhængighedsårsager.

# aptitude update && aptitude install package_name 		[Debian and derivatives]
# yum update && yum install package_name 			[CentOS]
# zypper refresh && zypper install package_name 		[openSUSE]

Indstillingen fjern afinstallerer pakken, men efterlader konfigurationsfiler intakte, mens rensning sletter alle spor af programmet fra dit system.
# aptitude remove/purge package_name
# yum slet pakkenavn

---Notice the minus sign in front of the package that will be uninstalled, openSUSE ---

# zypper remove -package_name 

De fleste (hvis ikke alle) pakkeadministratorer beder dig som standard om du er sikker på at fortsætte med afinstallationen, før du faktisk udfører den. Så læs skærmbeskederne omhyggeligt for at undgå unødvendige problemer!

Den følgende kommando viser oplysninger om fødselsdag -pakken.

# aptitude show birthday 
# yum info birthday
# zypper info birthday

Resumé

Pakkehåndtering er noget, du bare ikke kan feje under tæppet som systemadministrator. Du skal være parat til at bruge værktøjerne beskrevet i denne artikel med et øjebliks varsel. Håber du finder det nyttigt i din forberedelse til LFCS eksamen og til dine daglige opgaver. Du er velkommen til at efterlade dine kommentarer eller spørgsmål nedenfor. Vi vil være mere end glade for at vende tilbage til dig hurtigst muligt.