Articles

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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *