Linux Professional Institute Learning Logo.
Passer au contenu principal
  • Accueil
    • Toutes les ressources
    • Supports de Cours LPI
    • Devenez contributeur
    • Publishing Partners
    • Devenez Partenaire de Publication
    • À propos
    • FAQ
    • Contributeurs
    • Feuille de route
    • Contactez-nous
  • LPI.org
102.5 Leçon 1
Thème 101 : Architecture système
101.1 Détermination et configuration des paramètres du matériel
  • 101.1 Leçon 1
101.2 Démarrage du système
  • 101.2 Leçon 1
101.3 Change runlevels / boot targets and shutdown or reboot system
  • 101.3 Leçon 1
Thème 102 : Installation de Linux et gestion de paquetages
102.1 Conception du schéma de partitionnement
  • 102.1 Leçon 1
102.2 Installation d'un gestionnaire d'amorçage
  • 102.2 Leçon 1
102.3 Gestion des bibliothèques partagées
  • 102.3 Leçon 1
102.4 Utilisation du gestionnaire de paquetage Debian
  • 102.4 Leçon 1
102.5 Utilisation des gestionnaires de paquetage RPM et YUM
  • 102.5 Leçon 1
102.6 Linux en tant que système virtuel hébergé
  • 102.6 Leçon 1
Thème 103 : Commandes GNU et Unix
103.1 Travail en ligne de commande
  • 103.1 Leçon 1
  • 103.1 Leçon 2
103.2 Traitement de flux de type texte avec des filtres
  • 103.2 Leçon 1
103.3 Gestion élémentaire des fichiers
  • 103.3 Leçon 1
  • 103.3 Leçon 2
103.4 Utilisation des flux, des tubes et des redirections
  • Prochainement...
103.5 Création, contrôle et interruption des processus
  • Prochainement...
103.6 Modification des priorités des processus
  • Prochainement...
103.7 Recherche dans des fichiers texte avec les expressions rationnelles
  • Prochainement...
103.8 Édition de fichier simple
  • Prochainement...
Thème 104 : Disques, systèmes de fichiers Linux , arborescence de fichiers standard (FHS)
104.1 Création des partitions et des systèmes de fichiers
  • Prochainement...
104.2 Maintenance de l'intégrité des systèmes de fichiers
  • Prochainement...
104.3 Montage et démontage des systèmes de fichiers
  • Prochainement...
104.5 Gestion des permissions et de la propriété sur les fichiers
  • Prochainement...
104.6 Création et modification des liens physiques et symboliques sur les fichiers
  • Prochainement...
104.7 Recherche de fichiers et placement des fichiers aux endroits adéquats
  • Prochainement...
How to get certified
  1. Thème 102 : Installation de Linux et gestion de paquetages
  2. 102.5 Utilisation des gestionnaires de paquetage RPM et YUM
  3. 102.5 Leçon 1

102.5 Leçon 1

Certification :

LPIC-1

Version :

5.0

Thème :

102 Installer Linux et gérer les paquets

Objectif :

102.5 Utiliser les gestionnaires de paquets RPM et Yum

Leçon :

1 sur 1

Introduction

Il y a longtemps, lorsque Linux en était encore à ses débuts, le moyen le plus courant de distribuer un logiciel était sous forme d’un fichier compressé (généralement une archive .tar.gz) avec le code source, qu’il fallait décompresser et compiler soi-même.

Cependant, à mesure que la quantité et la complexité des logiciels augmentaient, la nécessité de trouver un moyen de distribuer des logiciels pré-compilés s’imposait. En effet, tout le monde n’avait pas les ressources, en termes de temps et de puissance de calcul, pour compiler de gros projets comme le noyau Linux ou un serveur X.

Petit à petit, les efforts pour normaliser un mode de distribution de ces "paquets" logiciels se sont multipliés, et les premiers gestionnaires de paquets ont vu le jour. Ces outils ont considérablement facilité l’installation, la configuration ou la suppression de logiciels sur un système.

Parmi ceux-ci figurait le RPM Package Manager et son outil correspondant (rpm), développé par Red Hat. De nos jours, ils sont largement utilisés non seulement sur Red Hat Enterprise Linux (RHEL) lui-même, mais aussi sur ses descendants, comme Fedora, CentOS et Oracle Linux, d’autres distributions comme openSUSE et même d’autres systèmes d’exploitation, comme AIX d’IBM.

D’autres outils de gestion des paquets populaires sur les distributions compatibles Red Hat sont yum (YellowDog Updater Modified), dnf (Dandified YUM) et zypper, qui peuvent simplifier de nombreux aspects de l’installation, de la maintenance et de la suppression des paquets, ce qui rend la tâche beaucoup plus facile.

Dans cette leçon, nous allons apprendre à utiliser rpm, yum, dnf et zypper pour obtenir, installer, maintenir et supprimer des logiciels sur un système Linux.

Note

Malgré l’utilisation du même format de paquets, il y a des différences internes entre les distributions, de sorte qu’un paquet conçu spécifiquement pour openSUSE ne fonctionne pas forcément sur un système RHEL, et vice-versa. Lorsque vous recherchez des paquets, vérifiez toujours leur compatibilité et essayez d’en trouver un qui soit adapté à votre distribution spécifique dans la mesure du possible.

Le gestionnaire de paquets RPM (rpm)

Le gestionnaire de paquets RPM (rpm) est l’outil de référence pour la gestion des paquets logiciels sur les systèmes basés sur (ou dérivés de) Red Hat.

Installer, mettre à jour et supprimer des paquets

L’opération la plus basique consiste à installer un paquet, ce qui peut être effectué avec :

# rpm -i PAQUET

Où PAQUET est le nom du paquet .rpm que vous souhaitez installer.

S’il existe une version précédente d’un paquet sur le système, vous pouvez passer à une version plus récente en utilisant l’option -U :

# rpm -U PAQUET

S’il n’y a pas de version précédente de PAQUET installée, alors une nouvelle copie sera installée. Pour éviter cela et seulement mettre à jour un paquet installé, utilisez l’option -F.

Dans les deux cas, vous pouvez ajouter l’option -v pour obtenir un affichage détaillé (plus d’informations sont fournies pendant l’installation) et -h pour obtenir des signes dièse (#) qui s’affichent en guise de barre de progression. Plusieurs options peuvent être combinées, de sorte que rpm -i -v -h est identique à rpm -ivh.

Pour supprimer un paquet installé, passez l’option -e (comme “erase” ou effacer) à rpm, suivie du nom du paquet que vous souhaitez supprimer :

# rpm -e wget

Si un paquet installé dépend du paquet en cours de suppression, vous obtiendrez un message d’erreur :

# rpm -e unzip
error: Failed dependencies:
	/usr/bin/unzip is needed by (installed) file-roller-3.28.1-2.el7.x86_64

Pour venir à bout de l’opération, vous devrez d’abord supprimer les paquets qui dépendent de celui que vous souhaitez supprimer (dans l’exemple ci-dessus, file-roller). Vous pouvez fournir plusieurs noms de paquets en argument à rpm -e pour supprimer plusieurs paquets à la fois.

Gérer les dépendances

La plupart du temps, un paquet dépendra d’autres paquets pour fonctionner comme prévu. À titre d’exemple, un éditeur d’images pourra recourir à certaines bibliothèques pour gérer les fichiers JPG, ou un logiciel pourra avoir besoin d’un kit de développement de widgets comme Qt ou GTK pour son interface utilisateur.

rpm va vérifier si ces dépendances sont installées sur votre système, et va échouer à installer le paquet dans le cas contraire. Dans ce cas, rpm affichera la liste des composants manquants. Cependant, il n’est pas capable de résoudre les dépendances par lui-même.

Dans l’exemple ci-dessous, l’utilisateur a essayé d’installer un paquet pour l’éditeur d’images GIMP, mais certaines dépendances étaient manquantes :

# rpm -i gimp-2.8.22-1.el7.x86_64.rpm
error: Failed dependencies:
	babl(x86-64) >= 0.1.10 is needed by gimp-2:2.8.22-1.el7.x86_64
	gegl(x86-64) >= 0.2.0 is needed by gimp-2:2.8.22-1.el7.x86_64
	gimp-libs(x86-64) = 2:2.8.22-1.el7 is needed by gimp-2:2.8.22-1.el7.x86_64
	libbabl-0.1.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgegl-0.2.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimp-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpbase-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpcolor-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpconfig-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpmath-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpmodule-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpthumb-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpui-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libgimpwidgets-2.0.so.0()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libmng.so.1()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libwmf-0.2.so.7()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64
	libwmflite-0.2.so.7()(64bit) is needed by gimp-2:2.8.22-1.el7.x86_64

C’est à l’utilisateur de trouver les paquets .rpm avec les dépendances correspondantes et de les installer. Les gestionnaires de paquets comme yum, zypper et dnf disposent d’outils qui permettent de savoir quel paquet fournit un fichier spécifique. Nous y reviendrons un peu plus loin dans cette leçon.

Afficher la liste des paquets installés

Pour obtenir une liste de tous les paquets installés sur votre système, utilisez la commande rpm -qa (comme dans “query all”).

# rpm -qa
selinux-policy-3.13.1-229.el7.noarch
pciutils-libs-3.5.1-3.el7.x86_64
redhat-menus-12.0.2-8.el7.noarch
grubby-8.28-25.el7.x86_64
hunspell-en-0.20121024-6.el7.noarch
dejavu-fonts-common-2.33-6.el7.noarch
xorg-x11-drv-dummy-0.3.7-1.el7.1.x86_64
libevdev-1.5.6-1.el7.x86_64
[...]

Obtenir des informations sur les paquets

Pour obtenir des informations sur un paquet installé, comme son numéro de version, son architecture, sa date d’installation, le nom du mainteneur du paquet, une description sommaire, etc., utilisez rpm avec l’option -qi (comme “query info”), suivie du nom du paquet.

# rpm -qi unzip
Name        : unzip
Version     : 6.0
Release     : 19.el7
Architecture: x86_64
Install Date: Sun 25 Aug 2019 05:14:39 PM EDT
Group       : Applications/Archiving
Size        : 373986
License     : BSD
Signature   : RSA/SHA256, Wed 25 Apr 2018 07:50:02 AM EDT, Key ID 24c6a8a7f4a80eb5
Source RPM  : unzip-6.0-19.el7.src.rpm
Build Date  : Wed 11 Apr 2018 01:24:53 AM EDT
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.info-zip.org/UnZip.html
Summary     : A utility for unpacking zip files
Description :
The unzip utility is used to list, test, or extract files from a zip
archive. Zip archives are commonly found on MS-DOS systems. The zip
utility, included in the zip package, creates zip archives. Zip and
unzip are both compatible with archives created by PKWARE(R)'s PKZIP
for MS-DOS, but the programs' options and default behaviors do differ
in some respects.

Install the unzip package if you need to list, test or extract files from
a zip archive.

Pour obtenir une liste des fichiers contenus dans un paquet installé, utilisez l’option -ql (comme “query list”) suivie du nom du paquet :

# rpm -ql unzip
/usr/bin/funzip
/usr/bin/unzip
/usr/bin/unzipsfx
/usr/bin/zipgrep
/usr/bin/zipinfo
/usr/share/doc/unzip-6.0
/usr/share/doc/unzip-6.0/BUGS
/usr/share/doc/unzip-6.0/LICENSE
/usr/share/doc/unzip-6.0/README
/usr/share/man/man1/funzip.1.gz
/usr/share/man/man1/unzip.1.gz
/usr/share/man/man1/unzipsfx.1.gz
/usr/share/man/man1/zipgrep.1.gz
/usr/share/man/man1/zipinfo.1.gz

Si vous souhaitez obtenir des informations ou une liste de fichiers d’un paquet qui n’a pas encore été installé, ajoutez simplement l’option -p aux commandes ci-dessus, suivie du nom du fichier RPM (FICHIER). Donc rpm -qi PAQUET devient rpm -qip FICHIER, et rpm -ql PAQUET devient rpm -qlp FICHIER, comme indiqué ci-dessous.

# rpm -qip atom.x86_64.rpm
Name        : atom
Version     : 1.40.0
Release     : 0.1
Architecture: x86_64
Install Date: (not installed)
Group       : Unspecified
Size        : 570783704
License     : MIT
Signature   : (none)
Source RPM  : atom-1.40.0-0.1.src.rpm
Build Date  : sex 09 ago 2019 12:36:31 -03
Build Host  : b01bbeaf3a88
Relocations : /usr
URL         : https://atom.io/
Summary     : A hackable text editor for the 21st Century.
Description :
A hackable text editor for the 21st Century.
# rpm -qlp atom.x86_64.rpm
/usr/bin/apm
/usr/bin/atom
/usr/share/applications/atom.desktop
/usr/share/atom
/usr/share/atom/LICENSE
/usr/share/atom/LICENSES.chromium.html
/usr/share/atom/atom
/usr/share/atom/atom.png
/usr/share/atom/blink_image_resources_200_percent.pak
/usr/share/atom/content_resources_200_percent.pak
/usr/share/atom/content_shell.pak

(suite du listing)

Savoir à quel paquet appartient un fichier

Pour savoir quel paquet installé possède un fichier, utilisez l’option -qf (pensez à “query file”) suivie du chemin complet du fichier :

# rpm -qf /usr/bin/unzip
unzip-6.0-19.el7.x86_64

Dans l’exemple ci-dessus, le fichier /usr/bin/unzip appartient au paquet unzip-6.0-19.el7.x86_64.

YellowDog Updater Modified (YUM)

yum a été développé à l’origine sous le nom de Yellow Dog Updater (YUP), un outil pour gérer les paquets de la distribution Yellow Dog Linux. Au fil du temps, il a évolué pour gérer les paquets sur d’autres systèmes basés sur RPM, tels que Fedora, CentOS, Red Hat Enterprise Linux et Oracle Linux.

D’un point de vue fonctionnel, il est similaire à l’outil apt sur les systèmes basés sur Debian, en étant capable de rechercher, installer, mettre à jour et supprimer des paquets tout en gérant automatiquement les dépendances. yum peut être utilisé pour installer un seul paquet ou pour mettre à jour d’une traite un système entier.

Rechercher des paquets

Avant d’installer un paquet, vous devez connaître son nom. Pour ce faire, vous pouvez effectuer une recherche avec yum search MOTIF, où MOTIF est le nom du paquet recherché. Le résultat est une liste de paquets dont le nom ou le résumé contient le motif de recherche spécifié. Par exemple, si vous avez besoin d’un outil pour gérer les fichiers compressés 7Zip (avec l’extension .7z), vous pouvez utiliser :

# yum search 7zip
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.ufscar.br
 * epel: mirror.globo.com
 * extras: mirror.ufscar.br
 * updates: mirror.ufscar.br
=========================== N/S matchyutr54ed: 7zip ============================
p7zip-plugins.x86_64 : Additional plugins for p7zip
p7zip.x86_64 : Very high compression ratio file archiver
p7zip-doc.noarch : Manual documentation and contrib directory
p7zip-gui.x86_64 : 7zG - 7-Zip GUI version

  Name and summary matches only, use "search all" for everything.

Installer, mettre à jour et supprimer des paquets

Pour installer un paquet à l’aide de yum, utilisez la commande yum install PAQUET, où PAQUET est le nom du paquet. yum va récupérer le paquet et les dépendances correspondantes depuis un dépôt en ligne et installer le tout sur votre système.

# yum install p7zip
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.ufscar.br
 * epel: mirror.globo.com
 * extras: mirror.ufscar.br
 * updates: mirror.ufscar.br
Resolving Dependencies
--> Running transaction check
---> Package p7zip.x86_64 0:16.02-10.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================
 Package        Arch            Version               Repository     Size
==========================================================================
Installing:
 p7zip          x86_64          16.02-10.el7          epel          604 k

Transaction Summary
==========================================================================
Install  1 Package

Total download size: 604 k
Installed size: 1.7 M
Is this ok [y/d/N]:

Pour mettre à jour un paquet installé, utilisez yum update PAQUET, où PAQUET est le nom du paquet que vous souhaitez mettre à jour. Par exemple :

# yum update wget
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.ufscar.br
 * epel: mirror.globo.com
 * extras: mirror.ufscar.br
 * updates: mirror.ufscar.br
Resolving Dependencies
--> Running transaction check
---> Package wget.x86_64 0:1.14-18.el7 will be updated
---> Package wget.x86_64 0:1.14-18.el7_6.1 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================
 Package     Arch          Version                   Repository      Size
==========================================================================
Updating:
 wget        x86_64        1.14-18.el7_6.1           updates        547 k

Transaction Summary
==========================================================================
Upgrade  1 Package

Total download size: 547 k
Is this ok [y/d/N]:

Si vous ne fournissez aucun nom de paquet en argument, vous pouvez mettre à jour tous les paquets du système pour lesquels une mise à jour est disponible.

Pour vérifier si une mise à jour est disponible pour un paquet spécifique, utilisez yum check-update PAQUET. De manière similaire, si vous omettez le nom du paquet, yum vérifiera les mises à jour pour chacun des paquets installés sur le système.

Pour supprimer un paquet installé, utilisez yum remove PAQUET, où PAQUET est le nom du paquet que vous souhaitez supprimer.

Savoir quel paquet fournit un fichier donné

Dans un exemple précédent, nous avons montré une tentative d’installation de l’éditeur d’images gimp, qui a échoué pour cause de dépendances non satisfaites. Certes, rpm montre quels fichiers sont manquants, mais il ne liste pas le nom des paquets qui les fournissent.

Par exemple, l’une des dépendances manquantes était libgimpui-2.0.so.0. Pour voir quel paquet la fournit, vous pouvez utiliser yum whatprovides suivi du nom du fichier recherché :

# yum whatprovides libgimpui-2.0.so.0
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.ufscar.br
 * epel: mirror.globo.com
 * extras: mirror.ufscar.br
 * updates: mirror.ufscar.br
2:gimp-libs-2.8.22-1.el7.i686 : GIMP libraries
Repo        : base
Matched from:
Provides    : libgimpui-2.0.so.0

La réponse est gimp-libs-2.8.22-1.el7.i686. Partant de là, vous pouvez installer le paquet avec la commande yum install gimp-libs.

Cela fonctionne également pour les fichiers déjà présents sur votre système. Par exemple, si vous souhaitez savoir d’où vient le fichier /etc/hosts, vous pouvez utiliser :

# yum whatprovides /etc/hosts
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.ufscar.br
 * epel: mirror.globo.com
 * extras: mirror.ufscar.br
 * updates: mirror.ufscar.br
setup-2.8.71-10.el7.noarch : A set of system configuration and setup files
Repo        : base
Matched from:
Filename    : /etc/hosts

La réponse est setup-2.8.71-10.el7.noarch.

En savoir plus sur un paquet

Pour obtenir des informations sur un paquet, comme sa version, son architecture, sa description, sa taille et plus encore, utilisez yum info PAQUET où PAQUET est le nom du paquet pour lequel vous voulez en savoir plus :

# yum info firefox
Last metadata expiration check: 0:24:16 ago on Sat 21 Sep 2019 02:39:43 PM -03.
Installed Packages
Name         : firefox
Version      : 69.0.1
Release      : 3.fc30
Architecture : x86_64
Size         : 268 M
Source       : firefox-69.0.1-3.fc30.src.rpm
Repository   : @System
From repo    : updates
Summary      : Mozilla Firefox Web browser
URL          : https://www.mozilla.org/firefox/
License      : MPLv1.1 or GPLv2+ or LGPLv2+
Description  : Mozilla Firefox is an open-source web browser, designed
             : for standards compliance, performance and portability.

Gérer les dépôts de logiciels

Pour yum, les dépôts de paquets (“repos”) figurent dans le répertoire /etc/yum.repos.d/. Chaque dépôt est représenté par un fichier .repo, comme CentOS-Base.repo.

Des dépôts supplémentaires peuvent être ajoutés par l’utilisateur en ajoutant un fichier .repo dans le répertoire mentionné ci-dessus, ou à la fin de /etc/yum.conf. Ceci étant dit, la procédure recommandée pour ajouter ou gérer les dépôts de paquets passe par l’outil yum-config-manager.

Pour ajouter un dépôt, utilisez le paramètre --add-repo suivi de l’URL d’un fichier .repo.

# yum-config-manager --add-repo https://rpms.remirepo.net/enterprise/remi.repo
Loaded plugins: fastestmirror, langpacks
adding repo from: https://rpms.remirepo.net/enterprise/remi.repo
grabbing file https://rpms.remirepo.net/enterprise/remi.repo to /etc/yum.repos.d/remi.repo
repo saved to /etc/yum.repos.d/remi.repo

Pour obtenir une liste de tous les dépôts disponibles, utilisez yum repolist all. Vous obtiendrez un résultat semblable à celui-ci :

# yum repolist all
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.ufscar.br
 * epel: mirror.globo.com
 * extras: mirror.ufscar.br
 * updates: mirror.ufscar.br
repo id                       repo name                    status
updates/7/x86_64              CentOS-7 - Updates           enabled:  2,500
updates-source/7              CentOS-7 - Updates Sources   disabled

Les dépôts désactivés (disabled) seront ignorés lors de l’installation ou de la mise à jour des logiciels. Pour activer ou désactiver un dépôt, invoquez l’outil yum-config-manager en renseignant l’identifiant du dépôt.

Dans l’exemple ci-dessus, l’identifiant du dépôt est indiqué dans la première colonne (repo id) de chaque ligne. Utilisez uniquement la partie avant le premier /, de sorte que l’identifiant pour le dépôt CentOS-7 - Updates est updates, et non pas updates/7/x86_64.

# yum-config-manager --disable updates

La commande ci-dessus va désactiver le dépôt updates. Pour le réactiver, utilisez :

# yum-config-manager --enable updates
Note

Yum conserve les paquets téléchargés et les métadonnées associées dans un répertoire de cache (généralement /var/cache/yum). Au fur et à mesure que le système est mis à jour et que de nouveaux paquets sont installés, ce cache peut devenir assez volumineux. Pour nettoyer le cache et récupérer de l’espace disque, vous pouvez utiliser la commande yum clean suivie de ce qu’il faut nettoyer. Les paramètres les plus pertinents sont packages (yum clean packages) pour supprimer les paquets téléchargés et metadata (yum clean metadata) pour supprimer les métadonnées associées. Consultez la page de manuel de yum (tapez man yum) pour plus d’informations.

DNF

dnf est l’outil de gestion de paquets utilisé sous Fedora, c’est un fork de yum. De ce fait, les commandes et les paramètres se ressemblent beaucoup. Cette section va vous donner un aperçu rapide de dnf.

Recherche de paquets

dnf search MOTIF, où MOTIF correspond à ce que vous recherchez. Par exemple, dnf search unzip affichera tous les paquets qui contiennent le mot unzip dans le nom ou la description.

En savoir plus sur un paquet

dnf info PAQUET

Installer des paquets

dnf install PAQUET, où PAQUET est le nom du paquet que vous souhaitez installer. Vous pouvez trouver le nom exact en effectuant une recherche.

Supprimer des paquets

dnf remove PAQUET

Mettre à jour des paquets

dnf upgrade PAQUET pour mettre à jour un seul paquet. Invoquez la commande sans paramètre pour mettre à jour l’ensemble des paquets du système.

Savoir à quel paquet appartient un fichier

dnf provides FICHIER

Obtenir une liste de tous les paquets installés sur le système

dnf list --installed

Afficher le contenu d’un paquet

dnf repoquery -l PAQUET

Note

dnf dispose d’un système d’aide intégré, qui affiche des informations détaillées (comme les paramètres supplémentaires) pour chaque commande. Pour l’utiliser, tapez dnf help suivi de la commande, comme dnf help install.

Gérer les dépôts de logiciels

Tout comme yum et zypper, dnf fonctionne avec des dépôts de logiciels (repos). Chaque distribution dispose d’une liste de dépôts par défaut, et les administrateurs peuvent ajouter ou supprimer des dépôts en cas de besoin.

Pour obtenir une liste de tous les dépôts disponibles, utilisez dnf repolist. Pour répertorier uniquement les dépôts activés, ajoutez l’option --enabled, et pour afficher uniquement les dépôts désactivés, utilisez l’option --disabled.

# dnf repolist
Last metadata expiration check: 0:20:09 ago on Sat 21 Sep 2019 02:39:43 PM -03.
repo id                    repo name                                      status
*fedora                    Fedora 30 - x86_64                             56,582
*fedora-modular            Fedora Modular 30 - x86_64                        135
*updates                   Fedora 30 - x86_64 - Updates                   12,774
*updates-modular           Fedora Modular 30 - x86_64 - Updates              145

Pour ajouter un dépôt, invoquez dnf config-manager --add_repo URL, où URL est l’URL complète du dépôt. Pour activer un dépôt, utilisez dnf config-manager --set-enabled ID_DEPOT.

De même, pour désactiver un dépôt, utilisez dnf config-manager --set-disabled ID_DEPOT. Dans les deux cas, ID_DEPOT est l’ID unique du dépôt, que vous pouvez obtenir en invoquant dnf repolist. Les dépôts ajoutés sont activés par défaut.

Les dépôts sont stockés dans des fichiers .repo dans le répertoire /etc/yum.repos.d/ et utilisent exactement la même syntaxe que yum.

Zypper

zypper est l’outil de gestion de paquets utilisé sous SUSE Linux et OpenSUSE. Ses fonctionnalités sont similaires à celles de apt et yum, puisqu’il permet d’installer, de mettre à jour et de supprimer des paquets sur un système, avec une résolution automatique des dépendances.

Mettre à jour l’index des paquets

Tout comme d’autres outils de gestion de paquets, zypper fonctionne avec des dépôts contenant des paquets et des métadonnées. Ces métadonnées doivent être rafraîchies de temps en temps, afin que le gestionnaire soit au courant des derniers paquets disponibles. Pour effectuer un rafraîchissement, tapez simplement :

# zypper refresh
Repository 'Non-OSS Repository' is up to date.
Repository 'Main Repository' is up to date.
Repository 'Main Update Repository' is up to date.
Repository 'Update Repository (Non-Oss)' is up to date.
All repositories have been refreshed.

zypper dispose d’une fonctionnalité de rafraîchissement automatique qui peut être activée individuellement pour chaque dépôt. Autrement dit, certains dépôts peuvent être rafraîchis automatiquement avant une requête ou l’installation d’un paquet, alors que d’autres devront être rafraîchis manuellement. Vous apprendrez bientôt comment vous servir de cette fonctionnalité.

Rechercher des paquets

Pour rechercher un paquet, utilisez la commande search (ou se) suivie du nom du paquet :

# zypper se gnumeric
Loading repository data...
Reading installed packages...

S | Name           | Summary                           | Type
--+----------------+-----------------------------------+--------
  | gnumeric       | Spreadsheet Application           | package
  | gnumeric-devel | Spreadsheet Application           | package
  | gnumeric-doc   | Documentation files for Gnumeric  | package
  | gnumeric-lang  | Translations for package gnumeric | package

La commande search peut également être utilisée pour obtenir une liste de tous les paquets installés sur le système. Pour ce faire, utilisez l’option -i sans nom de paquet, comme dans zypper se -i.

Pour voir si un paquet spécifique est installé, ajoutez le nom du paquet à la commande ci-dessus. Par exemple, la requête suivante va rechercher parmi les paquets installés tous ceux qui contiennent “firefox” dans leur nom :

# zypper se -i firefox
Loading repository data...
Reading installed packages...

S | Name                               | Summary                 | Type
--+------------------------------------+-------------------------+--------
i | MozillaFirefox                     | Mozilla Firefox Web B-> | package
i | MozillaFirefox-branding-openSUSE   | openSUSE branding of -> | package
i | MozillaFirefox-translations-common | Common translations f-> | package

Pour rechercher uniquement parmi les paquets non installés, ajoutez l’option -u à l’opérateur se.

Installer, mettre à jour et supprimer des paquets

Pour installer un paquet logiciel, utilisez la commande install (ou in) suivie du nom du paquet. Comme ceci :

# zypper in unrar
zypper in unrar
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  unrar

1 new package to install.
Overall download size: 141.2 KiB. Already cached: 0 B. After the operation, additional 301.6 KiB will be used.
Continue? [y/n/v/...? shows all options] (y): y
Retrieving package unrar-5.7.5-lp151.1.1.x86_64
                                     (1/1), 141.2 KiB (301.6 KiB unpacked)
Retrieving: unrar-5.7.5-lp151.1.1.x86_64.rpm .......................[done]
Checking for file conflicts: .......................................[done]
(1/1) Installing: unrar-5.7.5-lp151.1.1.x86_64 .....................[done]

zypper peut également être utilisé pour installer un paquet RPM depuis le disque local tout en essayant de satisfaire ses dépendances avec les paquets en provenance des dépôts. Pour ce faire, il suffit de fournir le chemin complet du paquet au lieu d’un nom de paquet, comme zypper in /home/john/nouveaupaquet.rpm.

Pour mettre à jour les paquets installés sur le système, utilisez zypper update. Comme pour le processus d’installation, cette opération va afficher une liste de paquets à installer/mettre à jour avant de vous demander si vous voulez continuer.

Si vous souhaitez seulement afficher la liste des mises à jour disponibles sans rien installer, vous pouvez utiliser zypper list-updates.

Pour supprimer un paquet, utilisez la commande remove (ou rm) suivie du nom du paquet :

# zypper rm unrar
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following package is going to be REMOVED:
  unrar

1 package to remove.
After the operation, 301.6 KiB will be freed.
Continue? [y/n/v/...? shows all options] (y): y
(1/1) Removing unrar-5.7.5-lp151.1.1.x86_64 ........................[done]

Gardez à l’esprit que la suppression d’un paquet entraîne la suppression de tous les autres paquets qui en dépendent. Par exemple :

# zypper rm libgimp-2_0-0
Loading repository data...
Warning: No repositories defined. Operating only with the installed resolvables. Nothing can be installed.
Reading installed packages...
Resolving package dependencies...

The following 6 packages are going to be REMOVED:
  gimp gimp-help gimp-lang gimp-plugins-python libgimp-2_0-0
  libgimpui-2_0-0

6 packages to remove.
After the operation, 98.0 MiB will be freed.
Continue? [y/n/v/...? shows all options] (y):

Savoir quel paquet fournit un fichier donné

Pour savoir quel paquet contient un fichier donné, utilisez la commande search suivie de l’option --provides et du nom du fichier (ou de son chemin complet). Par exemple, si vous voulez savoir quel paquet contient le fichier libgimpmodule-2.0.so.0 dans /usr/lib64/ vous invoquerez :

# zypper se --provides /usr/lib64/libgimpmodule-2.0.so.0
Loading repository data...
Reading installed packages...

S | Name          | Summary                                      | Type
--+---------------+----------------------------------------------+--------
i | libgimp-2_0-0 | The GNU Image Manipulation Program - Libra-> | package

Obtenir des informations sur les paquets

Pour voir les métadonnées associées à un paquet, utilisez la commande info suivie du nom du paquet. Cela vous indiquera le dépôt d’origine, le nom du paquet, la version, l’architecture, le fabricant, la taille installée, s’il est installé ou non, le statut (s’il est à jour), le paquet source ainsi qu’une description.

# zypper info gimp
Loading repository data...
Reading installed packages...

Information for package gimp:
 -----------------------------
Repository     : Main Repository
Name           : gimp
Version        : 2.8.22-lp151.4.6
Arch           : x86_64
Vendor         : openSUSE
Installed Size : 29.1 MiB
Installed      : Yes (automatically)
Status         : up-to-date
Source package : gimp-2.8.22-lp151.4.6.src
Summary        : The GNU Image Manipulation Program
Description    :
    The GIMP is an image composition and editing program, which can be
    used for creating logos and other graphics for Web pages. The GIMP
    offers many tools and filters, and provides a large image
    manipulation toolbox, including channel operations and layers,
    effects, subpixel imaging and antialiasing, and conversions, together
    with multilevel undo. The GIMP offers a scripting facility, but many
    of the included scripts rely on fonts that we cannot distribute.

Gérer les dépôts de logiciels

zypper peut également être utilisé pour gérer les dépôts de logiciels. Pour voir une liste de tous les dépôts enregistrés sur votre système, utilisez zypper repos :

# zypper repos
Repository priorities are without effect. All enabled repositories share the same priority.

#  | Alias                     | Name                               | Enabled | GPG Check | Refresh
---+---------------------------+------------------------------------+---------+-----------+--------
 1 | openSUSE-Leap-15.1-1      | openSUSE-Leap-15.1-1               | No      | ----      | ----
 2 | repo-debug                | Debug Repository                   | No      | ----      | ----
 3 | repo-debug-non-oss        | Debug Repository (Non-OSS)         | No      | ----      | ----
 4 | repo-debug-update         | Update Repository (Debug)          | No      | ----      | ----
 5 | repo-debug-update-non-oss | Update Repository (Debug, Non-OSS) | No      | ----      | ----
 6 | repo-non-oss              | Non-OSS Repository                 | Yes     | (r ) Yes  | Yes
 7 | repo-oss                  | Main Repository                    | Yes     | (r ) Yes  | Yes
 8 | repo-source               | Source Repository                  | No      | ----      | ----
 9 | repo-source-non-oss       | Source Repository (Non-OSS)        | No      | ----      | ----
10 | repo-update               | Main Update Repository             | Yes     | (r ) Yes  | Yes
11 | repo-update-non-oss       | Update Repository (Non-Oss)        | Yes     | (r ) Yes  | Yes

Dans la colonne Enabled, notez que certains dépôts sont activés, alors que d’autres ne le sont pas. Vous pouvez changer cela avec la commande modifyrepo suivie de l’option -e (enable) ou -d (disable) et l’alias du dépôt en question (qui figure dans la deuxième colonne dans l’affichage ci-dessus).

# zypper modifyrepo -d repo-non-oss
Repository 'repo-non-oss' has been successfully disabled.

# zypper modifyrepo -e repo-non-oss
Repository 'repo-non-oss' has been successfully enabled.

Nous avons vu précédemment que zypper a une fonctionnalité de rafraîchissement automatique qui peut être activée individuellement pour chaque dépôt. Lorsqu’il est activé, ce paramètre va faire en sorte que zypper déclenche une opération de rafraîchissement (la même que l’exécution de zypper refresh) avant d’interagir avec le dépôt spécifié. Ceci peut être contrôlé avec les options -f et -F de la commande modifyrepo :

# zypper modifyrepo -F repo-non-oss
Autorefresh has been disabled for repository 'repo-non-oss'.

# zypper modifyrepo -f repo-non-oss
Autorefresh has been enabled for repository 'repo-non-oss'.
Ajouter et supprimer des dépôts

Pour ajouter un nouveau dépôt logiciel pour zypper, utilisez la commande addrepo suivie de l’URL et du nom du dépôt, comme ci-dessous :

# zypper addrepo http://packman.inode.at/suse/openSUSE_Leap_15.1/ packman
Adding repository 'packman' ........................................[done]
Repository 'packman' successfully added

URI         : http://packman.inode.at/suse/openSUSE_Leap_15.1/
Enabled     : Yes
GPG Check   : Yes
Autorefresh : No
Priority    : 99 (default priority)

Repository priorities are without effect. All enabled repositories share the same priority.

Lorsque vous ajoutez un dépôt, vous pouvez activer le rafraîchissement automatique avec l’option -f. Les dépôts ajoutés sont activés par défaut, mais vous pouvez ajouter et désactiver un dépôt d’une traite en utilisant l’option -d.

Pour supprimer un dépôt, utilisez la commande removerepo, suivie du nom du dépôt (Alias). Pour supprimer le dépôt ajouté dans l’exemple ci-dessus, la commande serait :

# zypper removerepo packman
Removing repository 'packman' ......................................[done]
Repository 'packman' has been removed.

Exercices guidés

  1. En utilisant rpm sur un système Red Hat Enterprise Linux, comment installeriez-vous le paquet file-roller-3.28.1-2.el7.x86_64.rpm en affichant une barre de progression pendant l’installation ?

  2. En utilisant rpm, trouvez le paquet qui contient le fichier /etc/redhat-release.

  3. Comment utiliseriez-vous yum pour vérifier les mises à jour concernant tous les paquets du système ?

  4. En utilisant zypper, comment feriez-vous pour désactiver un dépôt appelé repo-extras ?

  5. Si vous avez un fichier .repo qui décrit un nouveau dépôt, où devez-vous le ranger pour qu’il soit reconnu par DNF ?

Exercices d’approfondissement

  1. Comment utiliseriez-vous zypper pour savoir quel paquet détient le fichier /usr/sbin/swapon ?

  2. Comment peut-on obtenir une liste de tous les paquets installés sur le système en utilisant dnf ?

  3. En utilisant dnf, quelle est la commande pour ajouter un dépôt disponible à l’adresse https://www.example.url/home:reponame.repo au système ?

  4. Comment pouvez-vous utiliser zypper pour vérifier si le paquet unzip est installé ?

  5. En utilisant yum, trouvez le paquet qui fournit le fichier /bin/wget.

Résumé

Dans cette leçon, vous avez appris :

  • Comment utiliser rpm pour installer, mettre à jour et supprimer des paquets.

  • Comment utiliser yum, zypper et dnf.

  • Comment obtenir des informations sur un paquet.

  • Comment lister le contenu d’un paquet.

  • Comment savoir de quel paquet provient un fichier.

  • Comment lister, ajouter, supprimer, activer ou désactiver des dépôts de logiciels.

Les commandes suivantes ont été abordées :

  • rpm

  • yum

  • dnf

  • zypper

Réponses aux exercices guidés

  1. En utilisant rpm sur un système Red Hat Enterprise Linux, comment installeriez-vous le paquet file-roller-3.28.1-2.el7.x86_64.rpm en affichant une barre de progression pendant l’installation ?

    Utilisez l’option -i pour installer un paquet et l’option -h pour activer les signes dièse # (hash marks) qui montrent la progression de l’installation. La réponse est donc : rpm -ih file-roller-3.28.1-2.el7.x86_64.rpm.

  2. En utilisant rpm, trouvez le paquet qui contient le fichier /etc/redhat-release.

    Vous demandez des informations sur un fichier, vous devez donc utiliser l’option -qf : rpm -qf /etc/redhat-release.

  3. Comment utiliseriez-vous yum pour vérifier les mises à jour concernant tous les paquets du système ?

    Utilisez la commande check-update sans nom de paquet : yum check-update.

  4. En utilisant zypper, comment feriez-vous pour désactiver un dépôt appelé repo-extras ?

    Utilisez la commande modifyrepo pour modifier les paramètres d’un dépôt, et l’option -d pour le désactiver : zypper modifyrepo -d repo-extras.

  5. Si vous avez un fichier .repo qui décrit un nouveau dépôt, où devez-vous le ranger pour qu’il soit reconnu par DNF ?

    Les fichiers .repo pour DNF doivent être rangés au même endroit que ceux utilisés par YUM, dans /etc/yum.repos.d/.

Réponses aux exercices d’approfondissement

  1. Comment utiliseriez-vous zypper pour savoir quel paquet détient le fichier /usr/sbin/swapon ?

    Utilisez la commande se (search) et l’option --provides : zypper se --provides /usr/sbin/swapon.

  2. Comment peut-on obtenir une liste de tous les paquets installés sur le système en utilisant dnf ?

    Utilisez la commande list suivie de l’option --installed : dnf list --installed.

  3. En utilisant dnf, quelle est la commande pour ajouter un dépôt disponible à l’adresse https://www.example.url/home:reponame.repo au système ?

    Manipuler les dépôts reviens à gérer la configuration, il faut donc utiliser la commande config-manager et l’option --add-repo : dnf config-manager --add-repo https://www.example.url/home:reponame.repo.

  4. Comment pouvez-vous utiliser zypper pour vérifier si le paquet unzip est installé ?

    Vous devez effectuer une recherche (se) sur les paquets installés (-i) : zypper se -i unzip.

  5. En utilisant yum, trouvez le paquet qui fournit le fichier /bin/wget.

    Pour savoir quel paquet fournit un fichier, utilisez whatprovides et le nom du fichier : yum whatprovides /bin/wget.

Linux Professional Insitute Inc. Tous droits réservés. Visitez le site web du projet _Learning_ : https://learning.lpi.org
Ce travail est sous licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Pas de Modification 4.0 International.

Prochaine leçon

102.6 Linux en tant que système virtuel hébergé (102.6 Leçon 1)

Lire la prochaine leçon

Linux Professional Insitute Inc. Tous droits réservés. Visitez le site web du projet _Learning_ : https://learning.lpi.org
Ce travail est sous licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Pas de Modification 4.0 International.

LPI est une organisation à but non lucratif.

© 2023 Le Linux Professional Institute (LPI) est la référence mondiale en matière de certification et un organisme de soutien aux professionnels de l'Open Source. Avec plus de 200 000 certifiés à son actif, c'est le principal organisme de certification indépendant pour Linux et l'Open Source au monde. Le LPI a certifié des professionnels dans plus de 180 pays, organise des examens en plusieurs langues et compte des centaines de partenaires pour la formation.

Notre objectif est la création d'opportunités économiques et créatives pour tous en rendant accessible au monde entier la certification des connaissances et des compétences en matière d'Open Source.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Contactez-nous
  • Politique en matière de confidentialité et de cookies

Vous avez repéré une erreur ou vous voulez aider à améliorer cette page ? Faites-nous savoir.

© 1999–2023 The Linux Professional Institute Inc. Tous droits réservés.