Guide de Yum et Apt
Overview
Les gestionnaires de paquets sont une grande fonctionnalité de chaque système Linux. Ils nous permettent de gérer facilement l’installation, la suppression et l’inspection des paquets logiciels.
Dans ce tutoriel, nous allons apprendre à utiliser deux parmi les plus célèbres : YUM et APT.
Les gestionnaires de paquets en bref
Avant de commencer, faisons un tour d’horizon de ce que sont effectivement les gestionnaires de paquets.
Sous Windows, nous installons généralement les logiciels en téléchargeant et en exécutant des installateurs exécutables.
Sous Linux, nous pouvons encore faire de même, en téléchargeant et en installant manuellement les paquets au format attendu par notre distribution. La méthode grand public consiste toutefois à s’appuyer sur les gestionnaires de paquets pour parcourir les logiciels disponibles (ainsi que ceux qui sont installés), ainsi que pour les installer, les mettre à jour et les désinstaller.
Les versions des logiciels fournies par les gestionnaires de paquets ne sont peut-être pas toujours les plus récentes, mais l’ensemble du processus est plus léger, plus rapide et plus sûr.
Regardons maintenant ce que sont YUM et APT, et comment ils fonctionnent.
YUM – Yellowdog Updater, Modified
YUM est un utilitaire de gestion de paquets pour les distributions basées sur RPM. RPM (Red Hat Package Manager) est le gestionnaire de paquets sur lequel sont basés des systèmes comme RHEL et CentOS.
YUM utilise RPM sous le capot, cachant sa complexité par une abstraction de haut niveau.
Fedora 22 et RHEL 8 ont introduit une réécriture de YUM, appelée DNF, qui est susceptible de devenir le nouveau standard pour les systèmes basés sur RPM.
APT – Advanced Packaging Tool
APT, de l’autre côté, est une collection de différents outils utilisés pour gérer les logiciels dans les distributions basées sur DPKG.
DPKG signifie Debian PacKaGe et est le gestionnaire de paquets au cœur de systèmes comme Debian et Ubuntu.
APT enveloppe les appels de bas niveau à DPKG pour fournir aux utilisateurs une interface conviviale.
Il convient de noter qu’APT est un acronyme utilisé dans plusieurs contextes différents. C’est le système d’empaquetage (APT), le paquet Linux sous lequel il est distribué (apt), et aussi un des outils qui forment la bibliothèque (apt, apt-get, apt-cache, et autres).
4.1. apt
apt est l’outil le plus récent du gestionnaire de paquets APT.
C’est souvent une source de confusion car les utilisateurs ne savent pas s’ils doivent utiliser apt ou apt-get pour leurs opérations et quelles sont les différences.
Eclaircissons-les ici : apt est le bon outil lorsqu’on manipule manuellement un système basé sur Debian. Nous devrions toujours le préférer à apt-get et apt-cache, car il unifie et simplifie les opérations principales des deux autres.
Il fournit également une barre de progression utile ainsi que d’autres petits avantages, comme une sortie colorée et des informations supplémentaires.
4.2. apt-get
apt-get, de l’autre côté, est le bon choix si nous allons scripter nos opérations de gestion. Il fournit une interface plus stable, plus de fonctionnalités, et permet également une personnalisation plus profonde.
Il était l’outil par défaut pour tout type d’opération jusqu’à Ubuntu 16.04. Dans Ubuntu 16.04, apt est devenu l’option préférée pour l’usage humain.
4.3. apt-cache
apt-cache, enfin, est un outil qui complète apt-get, fournissant des informations sur les logiciels installés et les logiciels disponibles également.
4.4. Snappy
Canonical, la société derrière Ubuntu, a récemment publié un nouveau système d’empaquetage agnostique à la distribution appelé Snappy.
Les paquets Snappy sont autonomes et peuvent être installés aussi bien dans Ubuntu que dans Fedora, CentOS, Arch, Gentoo, etc.
Alors que les dernières versions d’Ubuntu distribuent certains paquets principalement par Snappy, APT reste le moyen officiel de gérer les paquets logiciels, du moins pour l’instant.
Queries
Voyons maintenant comment nous pouvons utiliser ces outils pour interroger nos gestionnaires de paquets.
5.1. Lister les paquets
Nous pouvons demander à YUM de lister nos paquets avec les commandes suivantes :
# List installed and available packages from repositories:yum list all# List only installed packages:yum list installed# List only available packages:yum list available# List installed and available kernel packages:yum list kernel
Avec APT, au lieu de cela, nous pouvons lister nos paquets :
# List installed and available packages from repositories:apt list# List only installed packages:apt list --installed
Dans le cas où nous voulons voir seulement les paquets disponibles, nous pouvons avoir recours à un peu de grep puisqu’il n’y a pas de commande APT pour le faire hors de la boîte :
# List only available packages:apt list | grep -v installed
Pour le script, nous pourrions également envisager de recourir à la solution la plus proche d’apt list disponible à partir d’apt-cache:
apt-cache search .
Attention au fait que le résultat sera différent à la fois dans le nombre d’occurrences et dans leur ordre de retour, cependant.
5.2. Rechercher des paquets
Avec YUM, nous pouvons rechercher un paquet contenant un terme spécifique dans son nom ou sa description :
yum search SOMETHING
Cette fois, dans APT, c’est identique :
apt search SOMETHINGapt-cache search SOMETHING
5.3. Obtenir les détails du paquet
Une fois que nous savons quel paquet nous intéresse, nous pourrions vouloir vérifier ses détails.
Dans YUM:
yum info MY_PACKAGE
Et de la même manière, dans APT:
apt show MY_PACKAGEapt-cache show MY_PACKAGE
Gestion des paquets
Maintenant que nous avons vu comment rechercher et inspecter les paquets logiciels, voyons comment les gérer:
6.1. Mise à jour des informations sur les paquets
Tout d’abord, nous devons mettre à jour notre index des paquets.
Ces commandes ne mettent à jour aucun paquet installé, elles ne font que télécharger les dernières informations sur les paquets qui peuvent être installés ou mis à niveau.
Dans YUM, c’est:
yum check-update
Dans APT, au contraire, c’est simplement:
apt updateapt-get update
Nous devrions toujours exécuter apt update avant toute autre opération.
6.2. Installation d’un paquet
Pour installer un paquet dans YUM:
yum install MY_PACKAGE
Encore, dans les systèmes Debian, cela ne diffère pas du tout:
apt install MY_PACKAGEapt-get install MY_PACKAGE
6.3. Mise à niveau d’un paquet
La mise à niveau d’un paquet peut se faire de différentes manières.
Dans YUM, la commande yum update exécute en interne le yum check-update, ce qui signifie que nous n’avons pas besoin d’exécuter ce dernier sauf si nous voulons éviter d’installer quoi que ce soit après avoir mis à jour l’index des paquets. Nous pouvons mettre à niveau tous les paquets ou certains d’entre eux comme suit :
# Update the package index and every package:yum update# Update only the package MY_PACKAGE:yum update MY_PACKAGE# Apply security-related package updates:yum update --security
Or:
# Update every package:apt upgradeapt-get upgrade # Update every package along with their dependencies:apt full-upgradeapt-get dist-upgrade# Update only the package MY_PACKAGE:apt-get install --only-upgrade MY_PACKAGE# Apply security-related package updates:unattended-upgrade --dry-run -d
Il est important de savoir que la mise à niveau des paquets ainsi que de leurs dépendances implique potentiellement la désinstallation des logiciels existants et l’installation de nouveaux logiciels également si cela est requis par le processus de mise à niveau.
Les commandes de mise à niveau standard, d’un autre côté, ne désinstalleront jamais rien. Cependant, différemment d’apt-get upgrade (qui n’installe rien non plus), apt upgrade pourrait installer de nouveaux logiciels si nécessaire.
6.4. Suppression d’un paquet
Parfois, nous avons besoin de supprimer un paquet logiciel. Explorons alors les différentes façons de le faire, de peu profond et doux à profond et définitif.
Pour se débarrasser d’un paquet installé et éventuellement de ses dépendances dans YUM, nous pouvons effectuer l’une des deux commandes équivalentes :
yum erase MY_PACKAGEyum remove MY_PACKAGE
Dans RHEL7 et plus, il est possible d’effacer également les paquets supplémentaires inutiles avec autoremove :
yum autoremove MY_PACKAGE
Les moyens Debian pour effacer un paquet à la place sont :
apt remove MY_PACKAGEapt-get remove MY_PACKAGE
Toutefois, si nous voulons supprimer aussi la configuration du paquet, en purgeant complètement le système de celui-ci, alors nous pouvons exploiter purge:
apt purge MY_PACKAGEapt-get purge MY_PACKAGE
6.5. Nettoyer
Parfois, notre système sera pollué par des paquets orphelins, qui ne sont plus nécessaires mais qui occupent encore de l’espace.
Nous pouvons supprimer ces paquets indésirables dans YUM par autoremove, sans nom de paquet :
yum autoremove
Cela fonctionne également de la même manière sur les distributions Debian :
apt autoremoveapt-get autoremove
Gestion des dépôts
Les deux systèmes d’empaquetage commencent par un ensemble de dépôts officiels à interroger pour récupérer les paquets.
Cependant, la communauté est florissante, et souvent le paquet dont nous avons besoin est absent des dépôts officiels, ou bien il y est mais dans une version trop ancienne pour répondre à nos besoins.
Dans ces cas, nous pourrions vouloir ajouter des dépôts non officiels à la liste du gestionnaire de paquets (en faisant toujours attention au fait que cela pourrait représenter un problème de sécurité).
7.1. Ajout d’un dépôt
L’ajout d’un dépôt dans YUM est une opération manuelle, qui consiste à créer un fichier avec l’extension .repo sous le dossier /etc/yum.repos.d.
Le fichier doit contenir toutes les informations sur le dépôt personnalisé auquel nous nous connectons.
Essayons d’ajouter le dépôt AdoptOpenJDK:
# /etc/yum.repos.d/adoptopenjdk.reponame=AdoptOpenJDKbaseurl=http://adoptopenjdk.jfrog.io/adoptopenjdk/rpm/centos/7/$(uname -m)enabled=1gpgcheck=1gpgkey=https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public
Dans APT, cependant, les choses sont assez différentes. La clé GPG du dépôt doit être téléchargée et ajoutée au trousseau de clés d’APT avec apt-key add:
wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -
Puis, à ce stade, le dépôt peut être ajouté par add-apt-repository -yes suivi de l’URL :
add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/
Contrairement à YUM, tous les dépôts sont enregistrés dans un seul fichier, /etc/apt/sources.list.
7.2. Suppression d’un dépôt
La suppression d’un dépôt dans YUM est effectuée différemment selon la façon dont il a été installé.
Nous pouvons exécuter la commande suivante et analyser sa sortie :
rpm -qa | grep -i CUSTOM_REPOSITORY
Si le paquet RPM du dépôt est trouvé, cela signifie qu’il a été installé via RPM, et nous pouvons le supprimer en utilisant -e :
rpm -e CUSTOM_REPOSITORY_RPM_PACKAGE
Sinon, nous pouvons simplement supprimer le fichier du référentiel :
rm /etc/yum.repos.d/CUSTOM_REPOSITORY.repo
Nous pouvons également le désactiver sans le supprimer, en transformant simplement enabled=1 en enabled=0 dans le fichier du référentiel.
Dans APT, par contre, nous pouvons simplement faire :
add-apt-repository --remove ppa:CUSTOM_REPOSITORY/ppa
Alternativement, nous pouvons commenter les lignes relatives au dépôt dans le fichier /etc/apt/sources.list.
Autres opérations
Ces deux-là font beaucoup d’autres opérations. Couvrons-en quelques-unes.
8.1. Réinstaller un paquet
Dans le cas d’un paquet corrompu, comme certains fichiers sont manquants, nous pouvons le réinstaller avec:
yum reinstall MY_PACKAGEapt reinstall MY_PACKAGEapt-get reinstall MY_PACKAGE
8.2. Installation d’une version spécifique d’un paquet
Parfois, au contraire, nous pouvons avoir besoin d’installer une version spécifique d’un paquet.
Nous pouvons vérifier les versions disponibles d’un paquet avec :
yum list MY_PACKAGE --showduplicatesapt-cache showpkg MY_PACKAGE
Puis nous pouvons cibler la version souhaitée pour une nouvelle installation :
yum install MY_PACKAGE-WANTED_VERSIONapt install MY_PACKAGE=WANTED_VERSIONapt-get install MY_PACKAGE=WANTED_VERSION
YUM nous permet également de rétrograder d’une version existante vers l’une des versions précédemment installées :
yum downgrade MY_PACKAGE-WANTED_VERSION
8.3. Installation d’un groupe de paquets
Certains paquets sont combinés dans un groupe dans un but commun et peuvent être installés en une seule fois.
Ciblons un autre exemple du monde réel et pensons à l’installation de l’environnement graphique dans un serveur Linux.
L’installation des groupes X Window System et GNOME nous évitera de devoir installer des centaines de paquets à la main :
yum groupinstall 'X Window System' 'GNOME'
Le gestionnaire de paquets Debian, cependant, les traite comme de simples paquets, de sorte que la commande classique apt install suffit :
apt-get install xorg
Conclusion
Dans ce tutoriel, nous avons appris les concepts liés à YUM et APT, ainsi que l’utilisation pratique de leurs commandes principales.
Malgré le fait que nous n’ayons fait qu’effleurer la surface, nous devrions maintenant être en mesure de manipuler ces logiciels sur nos systèmes basés sur RedHat et Debian.