Principes de base de la gestion des packages : apt, yum, dnf, pkg

De Get Docs
Aller à :navigation, rechercher

Introduction

La plupart des systèmes d'exploitation modernes de type Unix offrent un mécanisme centralisé pour rechercher et installer des logiciels. Les logiciels sont généralement distribués sous la forme de packages, conservés dans des dépôts. Travailler avec des packages est connu sous le nom de gestion des packages. Les packages fournissent les composants de base d'un système d'exploitation, ainsi que des bibliothèques partagées, des applications, des services et de la documentation.

Un système de gestion de packages fait bien plus qu'une installation ponctuelle de logiciels. Il fournit également des outils pour mettre à niveau les packages déjà installés. Les référentiels de packages permettent de s'assurer que le code a été approuvé pour une utilisation sur votre système et que les versions installées des logiciels ont été approuvées par les développeurs et les mainteneurs de packages.

Lors de la configuration de serveurs ou d'environnements de développement, il est souvent nécessaire de regarder au-delà des référentiels officiels. Les packages de la version stable d'une distribution peuvent être obsolètes, en particulier lorsqu'il s'agit de logiciels nouveaux ou en évolution rapide. Néanmoins, la gestion des packages est une compétence vitale pour les administrateurs système et les développeurs, et la richesse des packages de logiciels pour les principales distributions est une ressource formidable.

Ce guide est conçu comme une référence rapide pour les principes de base de la recherche, de l'installation et de la mise à niveau des packages sur une variété de distributions, et devrait vous aider à traduire ces connaissances entre les systèmes.

Systèmes de gestion des packages : un bref aperçu

La plupart des systèmes de packages sont construits autour de collections de fichiers de packages. Un fichier de package est généralement une archive qui contient des applications compilées et d'autres ressources utilisées par le logiciel, ainsi que des scripts d'installation. Les packages contiennent également des métadonnées précieuses, y compris leurs dépendances, une liste des autres packages requis pour les installer et les exécuter.

Bien que leurs fonctionnalités et leurs avantages soient globalement similaires, les formats et outils d'emballage varient selon la plate-forme :

  • Pour Debian / Ubuntu : packages .deb installés par apt et dpkg
  • Pour Rocky / Fedora / RHEL : .rpm packages installés par yum
  • Pour FreeBSD : packages .txz installés par pkg

Dans Debian et les systèmes basés sur celle-ci, comme Ubuntu, Linux Mint et Raspbian, le format de paquet est le fichier .deb. apt, l'outil d'empaquetage avancé, fournit des commandes utilisées pour les opérations les plus courantes : recherche de référentiels, installation de collections de packages et de leurs dépendances, et gestion des mises à niveau. Les commandes apt fonctionnent comme une interface pour l'utilitaire de niveau inférieur dpkg, qui gère l'installation de fichiers .deb individuels sur le système local, et est parfois appelée directement.

Les versions récentes de la plupart des distributions dérivées de Debian incluent une seule commande apt, qui offre une interface concise et unifiée pour les opérations courantes qui ont traditionnellement été gérées par les plus spécifiques apt-get et [ X231X].

Rocky Linux, Fedora et d'autres membres de la famille Red Hat utilisent des fichiers RPM. Ceux-ci utilisaient un gestionnaire de packages appelé yum. Dans les versions récentes de Fedora et de ses dérivés, yum a été supplanté par dnf, un fork modernisé qui conserve la majeure partie de l'interface de yum.

Le système de paquets binaires de FreeBSD est administré avec la commande pkg. FreeBSD propose également la Ports Collection, une structure de répertoires locaux et des outils qui permettent à l'utilisateur de récupérer, compiler et installer des packages directement à partir de la source à l'aide de Makefiles. Il est généralement beaucoup plus pratique d'utiliser pkg, mais parfois un package pré-compilé n'est pas disponible, ou vous devrez peut-être modifier les options de compilation.

Mettre à jour les listes de packages

La plupart des systèmes conservent une base de données locale des packages disponibles à partir de référentiels distants. Il est préférable de mettre à jour cette base de données avant d'installer ou de mettre à niveau les packages. Comme exception partielle à ce modèle, dnf vérifiera les mises à jour avant d'effectuer certaines opérations, mais vous pouvez demander à tout moment si des mises à jour sont disponibles.

  • Pour Debian/Ubuntu : sudo apt update
  • Pour Rocky/Fedora/RHEL : dnf check-update
  • Pour Packages FreeBSD : sudo pkg update
  • Pour Ports FreeBSD : sudo portsnap fetch update

Mettre à niveau les packages installés

S'assurer que tous les logiciels installés sur une machine restent à jour serait une entreprise énorme sans un système de package. Vous devrez suivre les modifications en amont et les alertes de sécurité pour des centaines de packages différents. Bien qu'un gestionnaire de packages ne résolve pas tous les problèmes que vous rencontrerez lors de la mise à niveau d'un logiciel, il vous permet de gérer la plupart des composants du système avec quelques commandes.

Sur FreeBSD, la mise à niveau des ports installés peut introduire des modifications avec rupture ou nécessiter des étapes de configuration manuelles. Il est préférable de lire /usr/ports/UPDATING avant de mettre à niveau avec portmaster.

  • Pour Debian/Ubuntu : sudo apt upgrade
  • Pour Rocky/Fedora/RHEL : sudo dnf upgrade
  • Pour Packages FreeBSD : sudo pkg upgrade

Trouver un forfait

La plupart des distributions offrent une interface graphique ou pilotée par menus pour les collections de packages. Ceux-ci peuvent être un bon moyen de naviguer par catégorie et de découvrir de nouveaux logiciels. Souvent, cependant, le moyen le plus rapide et le plus efficace de localiser un package consiste à effectuer une recherche avec des outils de ligne de commande.

  • Pour Debian/Ubuntu : apt search search_string
  • Pour Rocky/Fedora/RHEL : dnf search search_string
  • Pour Packages FreeBSD : pkg search search_string

Remarque : Sur Rocky, Fedora ou RHEL, vous pouvez rechercher ensemble les titres et les descriptions des packages en utilisant dnf search all. Sur FreeBSD, vous pouvez rechercher des descriptions en utilisant pkg search -D


Afficher les informations sur un package spécifique

Lorsque vous décidez quoi installer, il est souvent utile de lire les descriptions détaillées des packages. En plus du texte lisible par l'homme, ceux-ci incluent souvent des métadonnées telles que les numéros de version et une liste des dépendances du package.

  • Pour Debian/Ubuntu : apt show package
  • Pour Rocky/Fedora/RHEL : dnf info package
  • Pour Packages FreeBSD : pkg info package
  • Pour Ports FreeBSD : cd /usr/ports/category/port && cat pkg-descr

Installer un package à partir de référentiels

Une fois que vous connaissez le nom d'un paquet, vous pouvez généralement l'installer et ses dépendances avec une seule commande. En général, vous pouvez fournir plusieurs packages à installer en même temps en les répertoriant tous.

  • Pour Debian/Ubuntu : sudo apt install package
  • Pour Rocky/Fedora/RHEL : sudo dnf install package
  • Pour Packages FreeBSD : sudo pkg install package

Installer un package à partir du système de fichiers local

Parfois, même si le logiciel n'est pas officiellement emballé pour un système d'exploitation donné, un développeur ou un fournisseur proposera des fichiers de package à télécharger. Vous pouvez généralement les récupérer avec votre navigateur Web ou via curl sur la ligne de commande. Une fois qu'un package est sur le système cible, il peut souvent être installé avec une seule commande.

Sur les systèmes dérivés de Debian, dpkg gère les fichiers de paquets individuels. Si un paquet a des dépendances non satisfaites, gdebi peut souvent être utilisé pour les récupérer à partir des dépôts officiels.

Sur Rocky Linux, Fedora ou RHEL, dnf est utilisé pour installer des fichiers individuels et gérera également les dépendances nécessaires.

  • Pour Debian/Ubuntu : sudo dpkg -i package.deb
  • Pour Rocky/Fedora/RHEL : sudo dnf install package.rpm
  • Pour Packages FreeBSD : sudo pkg add package.txz

Supprimer un ou plusieurs packages installés

Puisqu'un gestionnaire de packages sait quels fichiers sont fournis par un package donné, il peut généralement les supprimer proprement d'un système si le logiciel n'est plus nécessaire.

  • Pour Debian/Ubuntu : sudo apt remove package
  • Pour Rocky/Fedora/RHEL : sudo dnf erase package
  • Pour Packages FreeBSD : sudo pkg delete package

Obtenir de l'aide

En plus de la documentation Web, gardez à l'esprit que les pages de manuel Unix (généralement appelées man pages) sont disponibles pour la plupart des commandes du shell. Pour lire une page, utilisez man :

man page

Dans man, vous pouvez naviguer avec les touches fléchées. Appuyez sur / pour rechercher du texte dans la page et sur q pour quitter.

  • Pour Debian/Ubuntu : man apt
  • Pour Rocky/Fedora/RHEL : man dnf
  • Pour Packages FreeBSD : man pkg
  • Pour Ports FreeBSD : man ports

Conclusion et lectures complémentaires

Ce guide fournit une vue d'ensemble des opérations qui peuvent être référencées entre les systèmes, mais ne fait qu'effleurer la surface d'un sujet complexe. Pour plus de détails sur un système donné, vous pouvez consulter les ressources suivantes :