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

introduction

La plupart des systèmes d'exploitation de type Unix modernes offrent un mécanisme centralisé de recherche et d'installation de logiciels. Les logiciels sont généralement distribués sous la forme depackages, conservés enrepositories. Travailler avec des packages est connu sous le nom depackage management. Les packages fournissent les composants de base d'un système d'exploitation, ainsi que des bibliothèques, des applications, des services et de la documentation partagés.

Un système de gestion de paquets effectue beaucoup plus qu'une installation ponctuelle de logiciels. Il fournit également des outils pour la mise à niveau des 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 du logiciel ont été approuvées par les développeurs et les responsables de la maintenance du package.

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

Ce guide constitue une référence rapide sur les principes fondamentaux de la recherche, de l’installation et de la mise à niveau de paquetages sur diverses distributions et devrait vous aider à traduire ces connaissances entre systèmes.

Systèmes de gestion de paquets: un bref aperçu

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

Bien que leurs fonctionnalités et leurs avantages soient globalement similaires, les formats et les outils de packaging varient selon les plateformes:

Système opérateur Format Outils)

Debian

.deb

apt,apt-cache,apt-get,dpkg

Ubuntu

.deb

apt,apt-cache,apt-get,dpkg

CentOS

.rpm

yum

Feutre

.rpm

dnf

FreeBSD

Ports,.txz

make,pkg

Dans Debian et les systèmes basés sur celui-ci, comme Ubuntu, Linux Mint et Raspbian, le format du paquet est le fichier.deb. APT, Advanced Packaging Tool, 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érieurdpkg, qui gère l'installation des 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 la commandeapt, qui offre une interface concise et unifiée aux opérations courantes qui étaient traditionnellement gérées par lesapt-get etapt-cache plus spécifiques. Son utilisation est facultative, mais peut simplifier certaines tâches.

CentOS, Fedora et d’autres membres de la famille Red Hat utilisent des fichiers RPM. Dans CentOS,yum est utilisé pour interagir avec les fichiers de package individuels et les référentiels.

Dans les versions récentes de Fedora,yum a été supplanté pardnf, un fork modernisé qui conserve la majeure partie de l'interface deyum.

Le système de paquets binaires de FreeBSD est administré avec la commandepkg. FreeBSD propose également Ports Collection, une structure de répertoires locaux et des outils permettant à l'utilisateur d'extraire, de compiler et d'installer des packages directement à partir des sources à l'aide de Makefiles. Il est généralement beaucoup plus pratique d’utiliserpkg, mais il arrive parfois qu’un package précompilé n’est pas disponible ou que vous deviez modifier les options de compilation.

Mettre à jour les listes de paquets

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 à jour des paquetages. En tant qu'exception partielle à ce modèle,yum etdnf vérifieront les mises à jour avant d'effectuer certaines opérations, mais vous pouvez leur demander à tout moment si des mises à jour sont disponibles.

Système Commander

Debian / Ubuntu

sudo apt-get update

sudo apt update

CentOS

yum check-update

Feutre

dnf check-update

Paquets FreeBSD

sudo pkg update

Ports FreeBSD

sudo portsnap fetch update

Mettre à jour les paquets installés

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

Sous FreeBSD, la mise à niveau des ports installés peut introduire des modifications radicales ou nécessiter des étapes de configuration manuelle. Il est préférable de lire/usr/ports/UPDATING avant de procéder à la mise à niveau avecportmaster.

Système Commander Remarques

Debian / Ubuntu

sudo apt-get upgrade

Ne met à jour que les packages installés, si possible.

sudo apt-get dist-upgrade

Peut ajouter ou supprimer des packages pour satisfaire de nouvelles dépendances.

sudo apt upgrade

Commeapt-get upgrade.

sudo apt full-upgrade

Commeapt-get dist-upgrade.

CentOS

sudo yum update

Feutre

sudo dnf upgrade

Paquets FreeBSD

sudo pkg upgrade

Ports FreeBSD

less /usr/ports/UPDATING

Utiliseless pour afficher les notes de mise à jour des ports (utilisez les touches fléchées pour faire défiler, appuyez surq pour quitter).

cd /usr/ports/ports-mgmt/portmaster && sudo make install && sudo portmaster -a

Installeportmaster et l'utilise pour mettre à jour les ports installés.

Trouver un forfait

La plupart des distributions offrent une interface graphique ou un menu pour les collections de paquets. Celles-ci peuvent constituer un bon moyen de naviguer par catégorie et de découvrir de nouveaux logiciels. Cependant, le moyen le plus rapide et le plus efficace de localiser un package consiste souvent à effectuer une recherche à l'aide d'outils de ligne de commande.

Système Commander Remarques

Debian / Ubuntu

apt-cache search search_string

apt search search_string

CentOS

yum search search_string

yum search all search_string

Recherche tous les champs, y compris la description.

Feutre

dnf search search_string

dnf search all search_string

Recherche tous les champs, y compris la description.

Paquets FreeBSD

pkg search search_string

Recherche par nom.

pkg search -f search_string

Recherches par nom, renvoyant des descriptions complètes.

pkg search -D search_string

Description de la recherche.

Ports FreeBSD

cd /usr/ports && make search name=package

Recherche par nom.

cd /usr/ports && make search key=search_string

Recherche les commentaires, les descriptions et les dépendances.

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. Outre le texte lisible par l’homme, ils incluent souvent des métadonnées telles que les numéros de version et une liste des dépendances du paquet.

Système Commander Remarques

Debian / Ubuntu

apt-cache show package

Affiche les informations mises en cache localement sur un package.

apt show package

dpkg -s package

Affiche l'état actuel de l'installation d'un package.

CentOS

yum info package

yum deplist package

Répertorie les dépendances pour un package.

Feutre

dnf info package

dnf repoquery --requires package

Répertorie les dépendances pour un package.

Paquets FreeBSD

pkg info package

Affiche des informations pour un package installé.

Ports FreeBSD

cd /usr/ports/category/port && cat pkg-descr

Installer un paquet à 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 simplement en les listant tous.

Système Commander Remarques

Debian / Ubuntu

sudo apt-get install package

sudo apt-get install package1 package2 ...

Installe tous les packages répertoriés.

sudo apt-get install -y package

Suppose «oui» oùapt inviterait généralement à continuer.

sudo apt install package

Affiche une barre de progression colorée.

CentOS

sudo yum install package

sudo yum install package1 package2 ...

Installe tous les packages répertoriés.

sudo yum install -y package

Suppose «oui» oùyum inviterait généralement à continuer.

Feutre

sudo dnf install package

sudo dnf install package1 package2 ...

Installe tous les packages répertoriés.

sudo dnf install -y package

Suppose «oui» oùdnf inviterait généralement à continuer.

Paquets FreeBSD

sudo pkg install package

sudo pkg install package1 package2 ...

Installe tous les packages répertoriés.

Ports FreeBSD

cd /usr/ports/category/port && sudo make install

Construit et installe un port à partir de la source.

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

Parfois, même si le logiciel n’est pas officiellement intégré à un système d’exploitation donné, un développeur ou un fournisseur propose des fichiers à télécharger. Vous pouvez généralement les récupérer avec votre navigateur Web ou viacurl sur la ligne de commande. Une fois qu'un paquet 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 référentiels officiels.

Sur les systèmes CentOS et Fedora,yum etdnf sont utilisés pour installer des fichiers individuels et gèrent également les dépendances nécessaires.

Système Commander Remarques

Debian / Ubuntu

sudo dpkg -i package.deb

sudo apt-get install -y gdebi && sudo gdebi package.deb

Installe et utilisegdebi pour installerpackage.deb et récupérer toutes les dépendances manquantes.

CentOS

sudo yum install package.rpm

Feutre

sudo dnf install package.rpm

Paquets FreeBSD

sudo pkg add package.txz

sudo pkg add -f package.txz

Installe le package même s'il est déjà installé.

Supprimer un ou plusieurs packages installés

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

Système Commander Remarques

Debian / Ubuntu

sudo apt-get remove package

sudo apt remove package

sudo apt-get autoremove

Supprime les packages inutiles.

CentOS

sudo yum remove package

Feutre

sudo dnf erase package

Paquets FreeBSD

sudo pkg delete package

sudo pkg autoremove

Supprime les packages inutiles.

Ports FreeBSD

sudo pkg delete package

cd /usr/ports/path_to_port && make deinstall

Désinstalle un port installé.

La commandeapt

Les administrateurs des distributions de la famille Debian sont généralement familiers avecapt-get etapt-cache. L'interface simplifiéeapt, conçue spécifiquement pour une utilisation interactive, est moins connue.

Commande traditionnelle apt équivalent

apt-get update

apt update

apt-get dist-upgrade

apt full-upgrade

apt-cache search string

apt search string

apt-get install package

apt install package

apt-get remove package

apt remove package

apt-get purge package

apt purge package

Bien queapt soit souvent un raccourci plus rapide pour une opération donnée, il n’est pas destiné à remplacer complètement les outils traditionnels et son interface peut changer entre les versions pour améliorer la convivialité. Si vous utilisez des commandes de gestion de packages dans un script ou un pipeline shell, il est judicieux de vous en tenir àapt-get etapt-cache.

Obtenir de l'aide

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

man page

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

Système Commander Remarques

Debian / Ubuntu

man apt-get

Mise à jour de la base de données locale des packages et utilisation des packages.

man apt-cache

Interrogation de la base de données de packages locale.

man dpkg

Travailler avec des fichiers de package individuels et interroger les packages installés.

man apt

Travailler avec une interface plus concise et conviviale pour la plupart des opérations de base.

CentOS

man yum

Feutre

man dnf

Paquets FreeBSD

man pkg

Travailler avec des packages binaires précompilés.

Ports FreeBSD

man ports

Travailler avec la collection de ports.

Conclusion et lectures complémentaires

Ce guide fournit une vue d'ensemble des opérations de base pouvant être référencées entre 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:

Related