Maison >Tutoriel système >Linux >Analyser les fonctions et les caractéristiques d'apt, yum, dnf et pkg
Présentation | La plupart des systèmes d'exploitation de type Unix modernes fournissent un mécanisme centralisé pour rechercher et installer des logiciels. Les logiciels sont généralement stockés dans des référentiels et distribués via des packages. Le travail de gestion des packages est appelé gestion des packages. 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. |
En plus d'installer des logiciels, le système de gestion des packages fournit également des outils pour mettre à jour les packages installés. Les référentiels de packages permettent de garantir que le code utilisé dans votre système a été examiné et que la version installée du logiciel a été approuvée par les développeurs et les responsables des packages.
Lors de la configuration d'un serveur ou d'un environnement de développement, il est préférable de comprendre quels packages se trouvent en dehors du référentiel officiel. Les packages de la version stable d'une distribution peuvent être obsolètes, en particulier pour les logiciels nouveaux ou en évolution rapide. Cependant, la gestion des packages est une compétence vitale à la fois pour les administrateurs système et les développeurs, et les logiciels packagés constituent un atout considérable pour les principales distributions Linux.
Ce guide est conçu pour présenter rapidement les bases de la recherche, de l'installation et de la mise à niveau de packages sur diverses distributions Linux, et pour vous aider à croiser ces contenus sur plusieurs systèmes.
Système de gestion de colis : un bref aperçuLa plupart des systèmes de packages sont construits autour de collections de fichiers de packages. Un fichier de package est généralement un fichier d'archive contenant des fichiers binaires compilés et d'autres ressources pour le logiciel, ainsi que des scripts d'installation. Les fichiers de package contiennent également des métadonnées précieuses, notamment leurs dépendances et une liste d'autres packages requis pour les installer et les exécuter.
Bien que les fonctionnalités et les avantages de ces systèmes de gestion de colis soient en grande partie les mêmes, les formats et outils d'emballage varient selon la plateforme :
Système d'exploitation | Format | Outils |
---|---|---|
Debian | .deb | apt, apt-cache, apt-get, dpkg |
Ubuntu | .deb | apt, apt-cache, apt-get, dpkg |
CentOS | .rpm | miam |
Fedora | .rpm | dnf |
BSD gratuit | Ports, .txz | faire, paquet |
Debian et ses dérivés, comme Ubuntu, Linux Mint et Raspbian, leur format de paquet est .deb. APT Cet outil avancé de gestion de packages fournit des commandes pour les opérations les plus courantes : rechercher des référentiels, installer des packages et leurs dépendances et gérer les mises à niveau. Dans le système local, nous pouvons également utiliser le programme dpkg pour installer un seul fichier deb. La commande APT sert de frontal au dpkg sous-jacent, et parfois elle est également appelée directement.
Les dérivés Debian les plus récemment publiés incluent la commande apt, qui fournit une interface concise et unifiée pour les opérations courantes généralement gérées par les commandes apt-get et apt-cache. Cette commande est facultative, mais son utilisation peut simplifier certaines tâches.
CentOS, Fedora et d'autres membres de la famille Red Hat utilisent des fichiers RPM. Dans CentOS, interagissez avec les fichiers et référentiels de packages individuels via yum.
Dans les versions récentes de Fedora, yum a été remplacé par dnf, un fork moderne de celui-ci qui conserve la plupart des interfaces de yum.
Le système de packaging binaire de FreeBSD est géré par la commande pkg. FreeBSD fournit également la collection Ports, qui est une structure de répertoires locaux et un outil permettant aux utilisateurs d'utiliser Makefile pour compiler et installer des packages directement à partir du code source après avoir obtenu le code source.
Liste des packages mise à jourLa plupart des systèmes auront une base de données de packages locale correspondant au référentiel distant. Il est préférable de mettre à jour cette base de données avant d'installer ou de mettre à niveau les packages. De plus, yum et dnf vérifieront également automatiquement les mises à jour avant d'effectuer certaines opérations. Bien entendu, vous pouvez mettre à jour le système à tout moment.
Système | Commandes |
---|---|
Debian/Ubuntu | sudo apt-get update |
mise à jour sudo apt | |
CentOS | miam check-update |
Fedora | dnf check-update |
Packages BSD gratuits | mise à jour du paquet sudo |
Ports BSD gratuits | sudo portsnap récupérer la mise à jour |
Sans système de packages, il est difficile de garantir que tous les logiciels installés sur la machine sont tenus à jour. 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 rencontrez lors de la mise à niveau d'un logiciel, il vous permet d'utiliser certaines commandes pour gérer la plupart des composants du système.
Sur FreeBSD, la mise à niveau des ports installés peut introduire des modifications importantes, et certaines étapes nécessitent une configuration manuelle, il est donc préférable de lire le contenu de /usr/ports/UPDATING avant de mettre à jour via portmaster.
Système | Commandes | Instructions |
---|---|---|
Debian/Ubuntu | sudo apt-get mise à niveau | Mettre à jour uniquement les packages installés |
sudo apt-get dist-upgrade | Des packages peuvent être ajoutés ou supprimés pour satisfaire de nouvelles dépendances | |
mise à niveau sudo apt | Semblable à la mise à niveau apt-get | |
sudo apt mise à niveau complète | Similaire à apt-get dist-upgrade | |
CentOS | mise à jour sudo miam | |
Fedora | mise à niveau sudo dnf | |
Packages BSD gratuits | Mise à niveau sudo pkg | |
Ports BSD gratuits | moins /usr/ports/UPDATING | Utilisez less pour afficher les invites de mise à jour des ports (utilisez les touches fléchées haut et bas pour faire défiler, appuyez sur q pour quitter). |
cd /usr/ports/ports-mgmt/portmaster && sudo make install && sudo portmaster -a | Installez Portmaster et utilisez-le pour mettre à jour les ports installés |
La plupart des distributions fournissent des outils graphiques ou pilotés par menus pour les collections de packages. Nous pouvons parcourir les logiciels par catégorie, ce qui est également un bon moyen de découvrir de nouveaux logiciels. Cependant, le moyen le plus rapide et le plus efficace de trouver un package consiste à effectuer une recherche à l’aide d’un outil de ligne de commande.
Système | Commandes | Instructions |
---|---|---|
Debian/Ubuntu | apt-cache recherche search_string | |
apt recherche search_string | ||
CentOS | miam recherche search_string | |
miam rechercher tout search_string | Rechercher dans tous les champs, y compris la description | |
Fedora | dnf recherche search_string | |
dnf recherche tout search_string | Rechercher dans tous les champs, y compris la description | |
Packages BSD gratuits | pkg recherche search_string | Recherche par nom |
pkg search -f search_string | Recherchez par nom et renvoyez une description complète | |
pkg search -D search_string | Description de la recherche | |
Ports BSD gratuits | cd /usr/ports && make search nom=package | Recherche par nom |
cd /usr/ports && make search key=search_string | Recherche d'avis, de descriptions et de dépendances |
Avant d'installer un progiciel, nous pouvons obtenir de nombreuses informations utiles en lisant attentivement la description du package. En plus du texte lisible par l'homme, ceux-ci incluent généralement des métadonnées telles que les numéros de version et une liste des dépendances du package.
Système | Commandes | Instructions |
---|---|---|
Debian/Ubuntu | forfait apt-cache show | Afficher les informations du cache local sur les packages |
forfait spectacle apt | ||
Paquet dpkg -s | Affiche l'état actuel de l'installation des packages | |
CentOS | miam paquet d'informations | |
paquet miam deplist | Liste des dépendances des packages | |
Fedora | forfait d'informations dnf | |
dnf repoquery --nécessite un package | Liste des dépendances des packages | |
Packages BSD gratuits | paquet d'informations sur le paquet | Afficher des informations sur les packages installés |
Ports BSD gratuits | cd /usr/ports/category/port && cat pkg-descr |
Une fois que vous connaissez le nom du package, vous pouvez généralement l'installer ainsi que ses dépendances avec une seule commande. Vous pouvez également installer plusieurs packages à la fois, il suffit de les lister tous.
Système | Commandes | Instructions |
---|---|---|
Debian/Ubuntu | Package d'installation sudo apt-get | |
sudo apt-get install package1 package2 ... | Installez tous les packages répertoriés | |
sudo apt-get install -y package | Lorsque apt vous demande s'il faut continuer, la valeur par défaut est oui | |
Package d'installation sudo apt | Afficher une barre de progression colorée | |
CentOS | paquet d'installation sudo miam | |
sudo yum install package1 package2 ... | Installez tous les packages répertoriés | |
sudo miam install -y package | Lorsque yum vous demande s'il faut continuer, la valeur par défaut sera oui | |
Fedora | Pack d'installation sudo dnf | |
sudo dnf install package1 package2 ... | Installez tous les packages répertoriés | |
sudo dnf install -y package | Lorsque dnf vous demande s'il faut continuer, la valeur par défaut sera directement oui | |
Packages BSD gratuits | Pack d'installation sudo pkg | |
sudo pkg install package1 package2 ... | Installez tous les packages répertoriés | |
Ports BSD gratuits | cd /usr/ports/category/port && sudo make install | Construire et installer un port à partir des sources |
Pour un système d'exploitation donné, il arrive parfois que certains logiciels ne fournissent pas officiellement le package correspondant, le développeur ou le fournisseur devra donc fournir le téléchargement du fichier du package. Vous pouvez généralement récupérer ces packages via un navigateur Web ou récupérer ces informations via la ligne de commande curl. Après avoir téléchargé le package sur le système cible, nous pouvons généralement l'installer avec une seule commande.
Sur les systèmes dérivés de Debian, dpkg est utilisé pour traiter les fichiers de packages individuels. Si un package a des dépendances non satisfaites, nous pouvons alors utiliser gdebi pour les récupérer depuis le référentiel officiel.
Sur les systèmes CentOS et Fedora, yum et dnf sont utilisés pour installer des fichiers individuels et gérer les dépendances requises.
Système | Commandes | Instructions |
---|---|---|
Debian/Ubuntu | sudo dpkg -i package.deb | |
sudo apt-get install -y gdebi && sudo gdebi package.deb | Installez gdebi, puis utilisez gdebi pour installer package.deb et gérer les dépendances manquantes | |
CentOS | sudo yum install package.rpm | |
Fedora | sudo dnf install package.rpm | |
Packages BSD gratuits | sudo pkg ajouter package.txz | |
sudo pkg add -f package.txz | Même les packages installés seront réinstallés |
Étant donné que le gestionnaire de packages sait quels fichiers sont fournis par un package donné, il peut souvent supprimer proprement ces fichiers du système si un logiciel n'est plus nécessaire.
Système | Commandes | Instructions |
---|---|---|
Debian/Ubuntu | sudo apt-get supprimer le paquet | |
sudo apt supprimer le paquet | ||
sudo apt-get autoremove | Supprimer les packages inutiles | |
CentOS | sudo miam removepackage | |
Fedora | paquet d'effacement sudo dnf | |
Packages BSD gratuits | sudo pkg supprimer le paquet | |
sudo pkg autoremove | Supprimer les packages inutiles | |
Ports BSD gratuits | sudo pkg supprimer le paquet | |
cd /usr/ports/path_to_port && make deinstall | Désinstaller le port |
Les administrateurs des distributions de la famille Debian connaissent généralement apt-get et apt-cache. Moins connue est l’interface simplifiée apt, conçue pour une utilisation interactive.
Commandes traditionnelles | Commande apt équivalente |
---|---|
apt-get update | mise à jour apt |
apt-get dist-upgrade | apt mise à niveau complète |
chaîne de recherche apt-cache | chaîne de recherche apt |
package d'installation apt-get | package d'installation apt |
apt-get supprimer le paquet | apt supprimer le paquet |
package de purge apt-get | forfait de purge apt |
Bien qu'apt soit généralement un raccourci pour une opération spécifique, il ne peut pas remplacer complètement les outils traditionnels et son interface peut changer de version en version pour améliorer la convivialité. Si vous utilisez des commandes de gestion de packages dans des scripts ou des pipelines shell, il est préférable de s'en tenir à apt-get et apt-cache.
Obtenir de l'aideEn plus de la documentation Web, n'oubliez pas que nous pouvons obtenir la plupart des commandes des pages de manuel Unix (souvent appelées pages de manuel) via le shell. Par exemple, pour lire une certaine page, vous pouvez utiliser man :
Chez l'homme, vous pouvez naviguer à l'aide des touches fléchées. Appuyez sur / pour rechercher le texte dans la page et utilisez q pour quitter.
Système | Commandes | Instructions |
---|---|---|
Debian/Ubuntu | homme apt-get | Mettre à jour la base de données de packages locale et travailler avec les packages |
homme apt-cache | Recherche dans la base de données de packages locale | |
homme dpkg | Travailler avec des fichiers de packages individuels et interroger les packages installés | |
homme apte | Effectuez les opérations les plus élémentaires via une interface plus simple et conviviale | |
CentOS | mec miam | |
Fedora | homme dnf | |
Packages BSD gratuits | pack homme | Fonctionne avec des packages binaires précompilés |
Ports BSD gratuits | ports masculins | Travailler avec la collection Ports |
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!