Recherche de site Web

Gestion des packages Linux avec Yum, RPM, Apt, Dpkg, Aptitude et Zypper - Partie 9


En août dernier, la Linux Foundation a annoncé la certification LFCS (Linux Foundation Certified Sysadmin), une brillante opportunité pour les administrateurs système du monde entier de démontrer, par le biais d'un examen basé sur les performances, qu'ils sont capables de réussir le support opérationnel global des systèmes Linux. Un administrateur système certifié par la Linux Foundation possède l'expertise nécessaire pour assurer un support système efficace, un dépannage et une surveillance de premier niveau, y compris la transmission finale du problème, si nécessaire, aux équipes de support technique.

Regardez la vidéo suivante qui explique le programme de certification Linux Foundation.

Cet article est la partie 9 d'une longue série de 10 didacticiels. Aujourd'hui, dans cet article, nous vous guiderons sur la gestion des packages Linux, requis pour l'examen de certification LFCS.

Gestion des paquets

En quelques mots, la gestion des packages est une méthode d'installation et de maintenance (ce qui inclut la mise à jour et probablement la suppression également) de logiciels sur le système.

Au début de Linux, les programmes n'étaient distribués que sous forme de code source, accompagné des pages de manuel requises, des fichiers de configuration nécessaires, etc. De nos jours, la plupart des distributeurs Linux utilisent par défaut des programmes ou des ensembles de programmes prédéfinis appelés packages, qui sont présentés aux utilisateurs prêts à être installés sur cette distribution. Cependant, une des merveilles de Linux reste la possibilité d'obtenir le code source d'un programme pour l'étudier, l'améliorer et le compiler.

Comment fonctionnent les systèmes de gestion de packages

Si un certain package nécessite une certaine ressource telle qu'une bibliothèque partagée ou un autre package, on dit qu'il a une dépendance. Tous les systèmes modernes de gestion de packages fournissent une méthode de résolution des dépendances pour garantir que lorsqu'un package est installé, toutes ses dépendances le sont également.

Systèmes d'emballage

Presque tous les logiciels installés sur un système Linux moderne se trouvent sur Internet. Il peut soit être fourni par le fournisseur de distribution via des référentiels centraux (qui peuvent contenir plusieurs milliers de packages, chacun ayant été spécifiquement construit, testé et maintenu pour la distribution), soit être disponible sous forme de code source pouvant être téléchargé et installé manuellement. .

Parce que différentes familles de distribution utilisent différents systèmes de packaging (Debian : *.deb/CentOS : *.rpm/openSUSE : *.rpm construit spécialement pour openSUSE), un package destiné à une distribution ne sera pas compatible avec une autre distribution. Cependant, la plupart des distributions sont susceptibles d'appartenir à l'une des trois familles de distribution couvertes par la certification LFCS.

Outils de package de haut et bas niveau

Afin d'effectuer efficacement la tâche de gestion des packages, vous devez être conscient que vous disposerez de deux types d'utilitaires disponibles : des outils de bas niveau (qui gèrent dans le backend l'installation, la mise à niveau et l'installation réelles). suppression des fichiers de package) et des outils de haut niveau (qui sont chargés de garantir que les tâches de résolution des dépendances et de recherche de métadonnées - « données sur les données » - sont effectuées).

DISTRIBUTION LOW-LEVEL TOOL HIGH-LEVEL TOOL
 Debian and derivatives  dpkg  apt-get / aptitude
 CentOS  rpm  yum
 openSUSE  rpm  zypper

Voyons la description des outils de bas niveau et de haut niveau.

dpkg est un gestionnaire de paquets de bas niveau pour les systèmes basés sur Debian. Il peut installer, supprimer, fournir des informations et créer des packages *.deb, mais il ne peut pas télécharger et installer automatiquement leurs dépendances correspondantes.

Lire la suite : 15 exemples de commandes dpkg

apt-get est un gestionnaire de paquets de haut niveau pour Debian et ses dérivés, et fournit un moyen simple de récupérer et d'installer des paquets, y compris la résolution des dépendances, à partir de plusieurs sources à l'aide de la ligne de commande. Contrairement à dpkg, apt-get ne fonctionne pas directement avec les fichiers *.deb, mais avec le nom propre du package.

Lire la suite : 25 exemples de commandes apt-get

aptitude est un autre gestionnaire de paquets de haut niveau pour les systèmes basés sur Debian, et peut être utilisé pour effectuer des tâches de gestion (installation, mise à niveau et suppression de paquets, gestion également automatique de la résolution des dépendances) de manière simple et rapide. . Il fournit les mêmes fonctionnalités qu'apt-get et des fonctionnalités supplémentaires, comme offrir l'accès à plusieurs versions d'un package.

rpm est le système de gestion de packages utilisé par les distributions compatibles Linux Standard Base (LSB) pour la gestion de bas niveau des packages. Tout comme dpkg, il peut interroger, installer, vérifier, mettre à niveau et supprimer des packages, et est plus fréquemment utilisé par les distributions basées sur Fedora, telles que RHEL et CentOS.

En savoir plus : Exemples de commandes 20 tr/min

yum ajoute des fonctionnalités de mises à jour automatiques et de gestion des packages avec gestion des dépendances aux systèmes basés sur RPM. En tant qu'outil de haut niveau, comme apt-get ou aptitude, yum fonctionne avec des référentiels.

Lire la suite : 20 exemples de commandes yum

Utilisation courante des outils de bas niveau

Les tâches les plus fréquentes que vous effectuerez avec des outils de bas niveau sont les suivantes :

1. Installer un package à partir d'un fichier compilé (*.deb ou *.rpm)

L'inconvénient de cette méthode d'installation est qu'aucune résolution de dépendance n'est fournie. Vous choisirez très probablement d'installer un package à partir d'un fichier compilé lorsque ce package n'est pas disponible dans les référentiels de la distribution et ne peut donc pas être téléchargé et installé via un outil de haut niveau. Étant donné que les outils de bas niveau n'effectuent pas de résolution des dépendances, ils se termineront avec une erreur si nous essayons d'installer un package avec des dépendances non satisfaites.

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

Remarque : n'essayez pas d'installer sur CentOS un fichier *.rpm conçu pour openSUSE, ou vice versa !

2. Mettre à jour un package à partir d'un fichier compilé

Encore une fois, vous ne mettrez à niveau manuellement un package installé que lorsqu'il n'est pas disponible dans les référentiels centraux.

dpkg -i file.deb 		[Debian and derivative]
rpm -U file.rpm 		[CentOS / openSUSE]
3. Liste des packages installés

Lorsque vous mettez la main sur un système déjà fonctionnel, vous souhaiterez probablement savoir quels packages sont installés.

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

Si vous souhaitez savoir si un package spécifique est installé, vous pouvez rediriger la sortie des commandes ci-dessus vers grep, comme expliqué dans manipuler des fichiers sous Linux – Partie 1 de cette série. Supposons que nous devions vérifier si le package mysql-common est installé sur un système Ubuntu.

dpkg -l | grep mysql-common

Une autre façon de déterminer si un package est installé.

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

Par exemple, voyons si le package sysdig est installé sur notre système.

rpm -qa | grep sysdig

4. Trouver quel package a installé un fichier
dpkg --search file_name
rpm -qf file_name

Par exemple, quel package a installé pw_dict.hwm ?

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

Utilisation courante d'outils de haut niveau

Les tâches les plus fréquentes que vous effectuerez avec des outils de haut niveau sont les suivantes.

1. Recherche d'un forfait

aptitude update mettra à jour la liste des packages disponibles et aptitude search effectuera la recherche réelle de package_name.

aptitude update && aptitude search package_name 

Dans l'option Rechercher tout, yum recherchera package_name non seulement dans les noms de packages, mais également dans les descriptions de packages.

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

Supposons que nous ayons besoin d'un fichier dont le nom est sysdig. Pour connaître le package que nous devrons installer, courons.

yum whatprovides “*/sysdig”

whatprovides dit à yum de rechercher le package et fournira un fichier qui correspond à l'expression régulière ci-dessus.

zypper refresh && zypper search package_name		[On openSUSE]
2. Installer un package à partir d'un référentiel

Lors de l'installation d'un package, vous pouvez être invité à confirmer l'installation une fois que le gestionnaire de packages a résolu toutes les dépendances. Notez qu'exécuter une mise à jour ou une actualisation (selon le gestionnaire de packages utilisé) n'est pas strictement nécessaire, mais garder les packages installés à jour est une bonne pratique d'administrateur système pour des raisons de sécurité et de dépendance.

aptitude update && aptitude install package_name 		[Debian and derivatives]
yum update && yum install package_name 			[CentOS]
zypper refresh && zypper install package_name 		[openSUSE]
3. Supprimer un package

L'option supprimer désinstallera le package mais en laissant les fichiers de configuration intacts, tandis que la purge effacera toute trace du programme de votre système.
# aptitude supprimer/purger nom_package
# miam, efface le nom_du_paquet

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

zypper remove -package_name 

La plupart (sinon la totalité) des gestionnaires de packages vous demanderont, par défaut, si vous êtes sûr de procéder à la désinstallation avant de l'effectuer. Alors lisez attentivement les messages à l’écran pour éviter de rencontrer des problèmes inutiles !

4. Afficher les informations sur un colis

La commande suivante affichera des informations sur le package anniversaire.

aptitude show birthday 
yum info birthday
zypper info birthday

Résumé

La gestion des packages est quelque chose que vous ne pouvez tout simplement pas passer sous silence en tant qu’administrateur système. Vous devez être prêt à utiliser les outils décrits dans cet article à tout moment. J'espère que cela vous sera utile dans votre préparation à l'examen LFCS et pour vos tâches quotidiennes. N'hésitez pas à laisser vos commentaires ou questions ci-dessous. Nous serons plus qu'heureux de vous répondre dans les plus brefs délais.