Gestió de paquets Linux amb Yum, RPM, Apt, Dpkg, Aptitude i Zypper - Part 9


L'agost passat, la Linux Foundation va anunciar la certificació LFCS (Linux Foundation Certified Sysadmin), una oportunitat brillant per als administradors de sistemes de tot arreu per demostrar, mitjançant un examen basat en el rendiment, que són capaços de tenir èxit en el suport operatiu global per als sistemes Linux. Un administrador de sistemes certificat de la Fundació Linux té l'experiència per garantir un suport eficaç del sistema, la resolució de problemes i la supervisió de primer nivell, inclosa, finalment, l'escalada d'emissions, quan sigui necessari, als equips de suport d'enginyeria.

Mireu el següent vídeo que explica sobre el programa de certificació de la Linux Foundation.

Aquest article és una part 9 d'una sèrie llarga de 10 tutorials, avui en aquest article us guiarem sobre la gestió de paquets de Linux, que són necessaris per a l'examen de certificació LFCS.

Gestió de paquets

En poques paraules, la gestió de paquets és un mètode d'instal·lació i manteniment (que inclou actualitzar i probablement també eliminar) programari al sistema.

Als primers dies de Linux, els programes només es distribuïen com a codi font, juntament amb les pàgines man requerides, els fitxers de configuració necessaris i molt més. Avui en dia, la majoria de distribuïdors de Linux utilitzen per defecte programes preconstruïts o conjunts de programes anomenats paquets, que es presenten als usuaris preparats per a la instal·lació en aquesta distribució. Tanmateix, una de les meravelles de Linux segueix sent la possibilitat d'obtenir el codi font d'un programa per estudiar, millorar i compilar.

Si un determinat paquet requereix un recurs determinat, com ara una biblioteca compartida o un altre paquet, es diu que té una dependència. Tots els sistemes moderns de gestió de paquets proporcionen algun mètode de resolució de dependències per garantir que quan s'instal·la un paquet, també s'instal·lin totes les seves dependències.

Gairebé tot el programari que s'instal·la en un sistema Linux modern es trobarà a Internet. Pot ser proporcionat pel proveïdor de distribució mitjançant repositoris centrals (que poden contenir diversos milers de paquets, cadascun dels quals s'ha construït, provat i mantingut específicament per a la distribució) o estar disponible en codi font que es pot descarregar i instal·lar manualment. .

Com que diferents famílies de distribució utilitzen diferents sistemes d'embalatge (Debian: *.deb/CentOS: *.rpm/openSUSE: *.rpm construït especialment per a openSUSE), un paquet destinat a una distribució no serà compatible amb una altra distribució. No obstant això, és probable que la majoria de distribucions pertanyin a una de les tres famílies de distribució cobertes per la certificació LFCS.

Per dur a terme la tasca de gestió de paquets de manera eficaç, heu de tenir en compte que tindreu dos tipus d'utilitats disponibles: eines de nivell baix (que gestionen al fons la instal·lació, l'actualització i la eliminació de fitxers de paquets) i eines de alt nivell (que s'encarreguen de garantir que es realitzen les tasques de resolució de dependències i cerca de metadades -dades sobre les dades-).

Vegem la descripció de les eines de baix i alt nivell.

dpkg és un gestor de paquets de baix nivell per a sistemes basats en Debian. Pot instal·lar, eliminar, proporcionar informació i crear paquets *.deb, però no pot descarregar i instal·lar automàticament les dependències corresponents.

Llegir més: 15 exemples d'ordres dpkg

apt-get és un gestor de paquets d'alt nivell per a Debian i derivats, i proporciona una manera senzilla de recuperar i instal·lar paquets, inclosa la resolució de dependències, des de múltiples fonts mitjançant la línia d'ordres. A diferència de dpkg, apt-get no funciona directament amb fitxers *.deb, sinó amb el nom propi del paquet.

Llegir més: 25 exemples d'ordres apt-get

aptitude és un altre gestor de paquets d'alt nivell per a sistemes basats en Debian i es pot utilitzar per realitzar tasques de gestió (instal·lació, actualització i eliminació de paquets, també gestionant la resolució de dependències automàticament) d'una manera ràpida i senzilla. . Proporciona la mateixa funcionalitat que apt-get i altres addicionals, com ara oferir accés a diverses versions d'un paquet.

rpm és el sistema de gestió de paquets utilitzat per les distribucions compatibles amb Linux Standard Base (LSB) per al maneig de paquets de baix nivell. Igual que dpkg, pot consultar, instal·lar, verificar, actualitzar i eliminar paquets, i és utilitzat amb més freqüència per les distribucions basades en Fedora, com RHEL i CentOS.

Llegir més: Exemples d'ordres de 20 rpm

yum afegeix la funcionalitat d'actualitzacions automàtiques i gestió de paquets amb gestió de dependències als sistemes basats en RPM. Com a eina d'alt nivell, com apt-get o aptitude, yum funciona amb repositoris.

Llegir més: 20 exemples d'ordres yum

Ús comú d'eines de baix nivell

Les tasques més freqüents que fareu amb eines de baix nivell són les següents:

L'inconvenient d'aquest mètode d'instal·lació és que no es proporciona cap resolució de dependència. El més probable és que opteu per instal·lar un paquet des d'un fitxer compilat quan aquest paquet no estigui disponible als repositoris de la distribució i, per tant, no es pugui descarregar i instal·lar mitjançant una eina d'alt nivell. Com que les eines de baix nivell no resolen dependències, sortiran amb un error si intentem instal·lar un paquet amb dependències no satisfetes.

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

Nota: No intenteu instal·lar a CentOS un fitxer *.rpm creat per a openSUSE, o viceversa!

De nou, només actualitzareu un paquet instal·lat manualment quan no estigui disponible als repositoris centrals.

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

La primera vegada que poseu a les mans un sistema que ja funciona, és probable que vulgueu saber quins paquets estan instal·lats.

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

Si voleu saber si un paquet específic està instal·lat, podeu canalitzar la sortida de les ordres anteriors a grep, tal com s'explica a manipular fitxers a Linux - Part 1 d'aquesta sèrie. Suposem que hem de verificar si el paquet mysql-common està instal·lat en un sistema Ubuntu.

# dpkg -l | grep mysql-common

Una altra manera de determinar si un paquet està instal·lat.

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

Per exemple, esbrineu si el paquet sysdig està instal·lat al nostre sistema.

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

Per exemple, quin paquet ha instal·lat pw_dict.hwm?

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

Ús comú d'eines d'alt nivell

Les tasques més freqüents que realitzareu amb eines d'alt nivell són les següents.

aptitude update actualitzarà la llista de paquets disponibles i aptitude search farà la cerca real de package_name.

# aptitude update && aptitude search package_name 

A l'opció de cerca a tot, yum cercarà package_name no només als noms dels paquets, sinó també a les descripcions dels paquets.

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

Suposem que necessitem un fitxer el nom del qual és sysdig. Per saber aquest paquet que haurem d'instal·lar, anem a córrer.

# yum whatprovides “*/sysdig”

whatprovides diu a yum que cerqui el paquet i proporcionarà un fitxer que coincideixi amb l'expressió regular anterior.

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

Mentre instal·leu un paquet, és possible que se us demani que confirmeu la instal·lació després que el gestor de paquets hagi resolt totes les dependències. Tingueu en compte que executar l'actualització o l'actualització (segons el gestor de paquets que s'utilitza) no és estrictament necessari, però mantenir els paquets instal·lats actualitzats és una bona pràctica de l'administrador del sistema per raons de seguretat i dependència.

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

L'opció elimina desinstal·larà el paquet però deixant els fitxers de configuració intactes, mentre que la purga esborrarà tots els rastres del programa del vostre sistema.
# aptitude remove/purge package_name
# yum esborra nom_paquet

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

# zypper remove -package_name 

La majoria (si no tots) els gestors de paquets us demanaran, de manera predeterminada, si esteu segurs de continuar amb la desinstal·lació abans de realitzar-la. Així que llegiu atentament els missatges a la pantalla per evitar problemes innecessaris!

L'ordre següent mostrarà informació sobre el paquet aniversari.

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

Resum

La gestió de paquets és una cosa que no podeu escombrar sota la catifa com a administrador del sistema. Hauríeu d'estar preparat per utilitzar les eines descrites en aquest article en qualsevol moment. Espero que us sigui útil en la vostra preparació per a l'examen LFCS i per a les vostres tasques diàries. No dubteu a deixar els vostres comentaris o preguntes a continuació. Estarem més que encantats de tornar-vos-hi el més aviat possible.