Les bases de la gestion de paquets Ubuntu et Debian

introduction

La gestion des paquets est l’un des avantages fondamentaux des systèmes Linux. Le format et les outils de gestion des paquets diffèrent d’une distribution à l’autre, mais deux familles générales se sont révélées être les plus courantes.

Pour les distributions basées sur RHEL, le format d’empaquetage RPM et des outils d’empaquetage tels que + rpm + et + yum + sont courants. L’autre famille majeure, utilisée par Debian, Ubuntu et les distributions associées, utilise le format d’emballage + .deb + et des outils tels que + apt + et + dpkg +. Ce dernier groupe est la famille dont nous allons parler dans ce guide.

Dans ce guide de style aide-mémoire, nous aborderons certains des outils de gestion de paquets les plus courants utilisés par les administrateurs système sur les systèmes Debian et Ubuntu. Cela peut être utilisé comme référence rapide lorsque vous devez savoir comment effectuer une tâche de gestion de paquet dans ces systèmes.

Comment utiliser ce guide

Ce guide couvrira les outils de gestion de paquets au niveau utilisateur qui sont souvent utilisés sur les systèmes Debian et Ubuntu. Nous ne couvrirons pas les outils nécessaires à la création de packages en raison de points de vue divergents sur les règles entre les différentes distributions et de la complexité des exemples non triviaux.

Nous discuterons de chaque outil commun individuellement dans la vue d’ensemble des outils de gestion de paquets Debian, mais la majorité de ce guide sera organisée par fonction plutôt que par outil. Cette organisation a plus de sens puisque ce guide est conçu comme une référence fonctionnelle.

Pour tirer le meilleur parti de ce guide, gardez à l’esprit les points suivants:

  • Lisez la section Vue d’ensemble des outils de gestion de paquets Debian ci-dessous si vous ne connaissez pas bien la famille d’outils de gestion de paquets Debian. Cela vous donnera un aperçu général du but de chaque outil et de la manière dont ils sont liés.

  • Utilisez chaque section de ce guide pour produire l’effet souhaité. Ceci n’est pas une procédure, alors n’hésitez pas à passer à ce qui est le plus pertinent pour vous en ce moment.

  • Utilisez le menu Contenu situé à gauche de cette page (en largeur large) ou la fonction de recherche de votre navigateur pour localiser les sections dont vous avez besoin.

  • Copiez et collez les exemples de ligne de commande donnés en remplaçant les valeurs de ++ par vos propres valeurs.

Présentation des outils de gestion de paquets Debian

L’écosystème Debian / Ubuntu utilise plusieurs outils de gestion de paquets afin de gérer les logiciels sur le système.

La plupart de ces outils sont interdépendants et fonctionnent sur les mêmes bases de données de packages. Certains de ces outils tentent de fournir des interfaces de haut niveau au système de conditionnement, tandis que d’autres utilitaires se concentrent sur la fourniture de fonctionnalités de bas niveau.

Apt-get

La commande + apt-get est probablement le membre le plus souvent utilisé de la suite d’outils de conditionnement` + apt`. Son objectif principal est l’interfaçage avec les référentiels distants gérés par l’équipe de conditionnement de la distribution et la réalisation d’actions sur les packages disponibles.

La suite + apt + en général fonctionne en extrayant les informations des référentiels distants dans un cache maintenu sur le système local. La commande + apt-get est utilisée pour actualiser le cache local. Il est également utilisé pour modifier l’état du paquet, ce qui signifie installer ou supprimer un paquet du système.

En général, + apt-get + sera utilisé pour mettre à jour le cache local et pour apporter des modifications au système live.

Apt-cache

Un autre membre important de la suite + apt est` + apt-cache`. Cet utilitaire utilise le cache local pour rechercher des informations sur les packages disponibles et leurs propriétés.

Par exemple, chaque fois que vous souhaitez rechercher un paquet spécifique ou un outil qui remplira une fonction donnée, + apt-cache + est un bon point de départ. Il peut également être informatif sur la version exacte du package qui sera ciblée par une procédure. Les dépendances et les informations sur les dépendances inversées sont un autre domaine où + apt-cache est utile.

Aptitude

La commande + aptitude + combine une grande partie des fonctionnalités des deux commandes ci-dessus. Il présente l’avantage de fonctionner comme un outil de ligne de commande, combinant les fonctionnalités des deux outils ci-dessus, et peut également fonctionner à l’aide d’une interface de menu à base de texte ncurses.

Lorsque vous utilisez la ligne de commande, la plupart des commandes reflètent exactement les capacités de + apt-get + et + apt-cache +. En raison de ce chevauchement, nous ne discuterons pas de + aptitude + dans ce guide. Vous pouvez souvent utiliser + aptitude à la place de` + apt-get` ou + apt-cache si vous préférez cet outil.

Dpkg

Alors que les outils précédents étaient axés sur la gestion des packages conservés dans des référentiels, la commande + dpkg + peut également être utilisée pour opérer sur des packages individuels + .deb +. L’outil + dpkg + est en fait responsable de la plupart des tâches en arrière-plan des commandes ci-dessus.

Contrairement aux commandes + apt - * +, + dpkg + n’a pas la capacité de résoudre les dépendances automatiquement. Sa principale caractéristique est la possibilité de travailler facilement avec les paquets + .deb + directement, et sa capacité à disséquer un paquet et à en savoir plus sur sa structure. Bien qu’il puisse collecter des informations sur les packages installés sur le système, son objectif principal réside au niveau de chaque package.

Tasksel

Le programme ` tasksel + ’est un type d’outil différent pour la gestion des logiciels. Au lieu de gérer des packages individuels ou même des applications, `+ tasksel + se concentre sur le regroupement des logiciels nécessaires à la réalisation de «tâches» spécifiques.

Les tâches organisées peuvent être sélectionnées à l’aide d’une interface textuelle ou être ciblées de la même manière que vous ciblez des packages dans des outils de packaging classiques. Bien que ce ne soit pas l’approche la plus chirurgicale, cela peut être très utile pour être rapidement opérationnel.

Autres

Il existe de nombreux autres outils de gestion de paquets qui fournissent des fonctionnalités différentes ou présentent des informations de différentes manières. Nous ne les aborderons que si cela est nécessaire, mais ils peuvent être très utiles dans certaines situations.

Certains des outils entrant dans cette catégorie sont + apt-file +, + dselect + et + gdebi +.

Mise à jour du cache de package et du système

Les outils de gestion de paquets Debian et Ubuntu constituent un excellent moyen de maintenir à jour la liste des paquets disponibles de votre système. Il fournit également des méthodes simples pour mettre à jour les paquetages que vous avez actuellement installés sur votre serveur.

Mettre à jour le cache de paquet local

Les référentiels distants sur lesquels vos outils de packaging s’appuient pour obtenir des informations sur les packages sont mis à jour en permanence. Cependant, la majorité des outils de gestion de paquets fonctionnent avec un cache local de ces informations.

Il est généralement judicieux de mettre à jour votre cache de package local à chaque session avant d’exécuter d’autres commandes de package. Cela garantira que vous exploitez les informations les plus récentes sur les logiciels disponibles. Plus précisément encore, certaines commandes d’installation échoueront si vous utilisez des informations de paquet périmées.

Pour mettre à jour le cache local, utilisez la commande + apt-get + avec la sous-commande + update +:

sudo apt-get update

Cela affichera une liste mise à jour des packages disponibles dans les référentiels que vous suivez.

Mise à jour des packages sans suppression de package

La suite de packages + apt + rend facile la mise à jour de tous les logiciels installés sur votre serveur.

La commande + apt + distingue deux procédures de mise à jour différentes. La première procédure de mise à jour (traitée dans cette section) peut être utilisée pour mettre à niveau tous les composants ne nécessitant pas de suppression de composant. Pour apprendre à mettre à jour et à permettre à + ​​apt + de supprimer et d’échanger les composants si nécessaire, reportez-vous à la section ci-dessous.

Cela peut être très important lorsque vous ne souhaitez supprimer aucun des packages installés en aucune circonstance. Cependant, certaines mises à jour impliquent le remplacement de composants système ou la suppression de fichiers en conflit. Cette procédure ignorera les mises à jour nécessitant la suppression du package:

sudo apt-get upgrade

Après avoir effectué cette action, toute mise à jour n’impliquant pas la suppression de composants sera appliquée.

Mettre à jour les packages et les supprimer si nécessaire

La suite de paquets + apt + rend facile la mise à jour de tous les logiciels installés sur votre serveur.

La commande + apt + distingue deux procédures de mise à jour différentes. La première procédure de mise à jour ignore les mises à jour nécessitant la suppression du package. Ceci est couvert dans la section ci-dessus.

La seconde procédure (traitée dans cette section) mettra à jour tous les packages, même ceux nécessitant leur suppression. Cela est souvent nécessaire lorsque les dépendances des packages changent.

Habituellement, les packages en cours de suppression seront remplacés par des équivalents fonctionnels lors de la procédure de mise à niveau, ce qui est généralement sans danger. Cependant, il est conseillé de garder un œil sur les paquets à retirer, au cas où certains composants essentiels seraient marqués pour être retirés. Pour effectuer cette action, tapez:

sudo apt-get dist-upgrade

Cela mettra à jour tous les paquets sur votre système. Il s’agit d’une procédure de mise à niveau plus complète que la dernière mise à niveau.

Téléchargement et installation de packages

L’une des fonctions principales des outils de gestion de paquets est de faciliter le téléchargement et l’installation de paquets sur le système.

Rechercher des forfaits

Lors du téléchargement et de l’installation de packages, la première étape consiste souvent à rechercher dans les référentiels de votre distribution les packages que vous recherchez.

La majorité des commandes + apt + opèrent principalement sur le cache des informations sur les paquets conservées sur la machine locale. Cela permet une exécution plus rapide et moins de trafic réseau.

La recherche de packages est une opération qui cible le cache de packages pour obtenir des informations. La sous-commande + apt-cache search + est l’outil nécessaire pour rechercher les paquets disponibles. Gardez à l’esprit que vous devez vous assurer que votre cache local est à jour en utilisant sudo apt-get update + avant de rechercher des paquets:

apt-cache search

Comme cette procédure ne recherche que des informations, elle ne nécessite pas les privilèges sudo +. Toute recherche préformée examinera les noms des packages, ainsi que les descriptions complètes des packages.

Par exemple, si vous recherchez + htop +, vous verrez les résultats suivants:

apt-cache search htop
aha - ANSI color to HTML converter
htop - interactive processes viewer
libauthen-oath-perl - Perl module for OATH One Time Passwords

Comme vous pouvez le constater, nous avons un paquet nommé + htop +, mais nous voyons aussi deux autres programmes, chacun mentionnant + htop + dans le champ de description complet du paquet (la description à côté de la sortie est courte). sommaire).

Installer un paquet depuis le dépôt

Pour installer un paquet à partir des référentiels, ainsi que toutes les dépendances nécessaires, nous pouvons utiliser la commande + apt-get + avec la sous-commande + install +.

Les arguments de cette commande doivent être le nom du package ou les noms tels qu’ils sont étiquetés dans le référentiel:

sudo apt-get install

Vous pouvez installer plusieurs packages à la fois, séparés par un espace:

sudo apt-get install

Si le paquet demandé nécessite des dépendances supplémentaires, celles-ci seront imprimées en sortie standard et vous serez invité à confirmer la procédure. Cela ressemblera à ceci:

sudo apt-get install apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
 apache2-data
Suggested packages:
 apache2-doc apache2-suexec-pristine apache2-suexec-custom
 apache2-utils
The following NEW packages will be installed:
 apache2 apache2-data
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 236 kB of archives.
After this operation, 1,163 kB of additional disk space will be used.
Do you want to continue [Y/n]?

Comme vous pouvez le constater, même si notre cible d’installation était le paquetage + apache2 +, le paquetage + apache2-data + est nécessaire en tant que dépendance. Dans ce cas, vous pouvez continuer en appuyant sur ENTER ou “y”, ou annuler l’opération en tapant “n”.

Installer une version de package spécifique à partir des dépôts

Si vous devez installer une version spécifique d’un package, vous pouvez indiquer la version que vous souhaitez cibler avec le même signe, comme ceci:

sudo apt-get install =

Dans ce cas, la version doit correspondre à l’un des numéros de version de package disponibles dans le référentiel. Cela signifie que vous utilisez le schéma de version utilisé par votre distribution. Vous pouvez trouver les versions disponibles en tapant + apt-cache policy +.

Reconfigurer les forfaits

De nombreux packages incluent des scripts de configuration post-installation qui sont exécutés une fois l’installation terminée. Celles-ci incluent souvent des invites pour que l’administrateur fasse des choix de configuration.

Si vous devez exécuter ultérieurement ces étapes de configuration (et des étapes supplémentaires), vous pouvez utiliser la commande + dpkg-reconfigure +. Cette commande examine le package qui lui a été transmis et réexécute les commandes de post-configuration incluses dans la spécification de package:

sudo dpkg-reconfigure

Cela vous permettra d’accéder aux mêmes invites (et souvent plus) que celles que vous avez exécutées lors de l’installation.

Effectuer une exécution à sec des actions de package

Plusieurs fois, vous voudrez voir les effets secondaires d’une procédure auparavant sans vous engager réellement à exécuter la commande. Heureusement, + apt + vous permet d’ajouter l’indicateur + -s + pour “simuler” une procédure.

Par exemple, pour voir ce qui serait fait si vous choisissez d’installer un paquet, vous pouvez taper:

apt-get install -s

Cela vous permettra de voir toutes les dépendances et les modifications à apporter à votre système si vous supprimez l’indicateur + -s +. Un des avantages de ceci est que vous pouvez voir les résultats d’un processus qui nécessiterait normalement des privilèges root, sans utiliser + sudo +.

Par exemple, si nous voulons évaluer ce qui serait installé avec le paquet + apache2 +, nous pouvons taper:

apt-get install -s apache2
NOTE: This is only a simulation!
     apt-get needs root privileges for real execution.
     Keep also in mind that locking is deactivated,
     so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
 apache2-data
Suggested packages:
 apache2-doc apache2-suexec-pristine apache2-suexec-custom
 apache2-utils
The following NEW packages will be installed:
 apache2 apache2-data
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Inst apache2-data (2.4.6-2ubuntu2.2 Ubuntu:13.10/saucy-updates [all])
Inst apache2 (2.4.6-2ubuntu2.2 Ubuntu:13.10/saucy-updates [amd64])
Conf apache2-data (2.4.6-2ubuntu2.2 Ubuntu:13.10/saucy-updates [all])
Conf apache2 (2.4.6-2ubuntu2.2 Ubuntu:13.10/saucy-updates [amd64])

Nous obtenons toutes les informations sur les packages et les versions qui seraient installés, sans avoir à terminer le processus.

Cela fonctionne également avec d’autres procédures, telles que les mises à niveau du système:

apt-get -s dist-upgrade

Ne pas demander d’approbation avec les actions de package

Par défaut, + apt + demandera à l’utilisateur de confirmer plusieurs processus. Cela inclut les installations nécessitant des dépendances supplémentaires et les mises à niveau de packages.

Pour contourner ces mises à niveau et accepter par défaut l’une de ces invites, vous pouvez passer l’indicateur + -y + lorsque vous effectuez ces opérations:

sudo apt-get install -y

Cela installera le paquet et toutes les dépendances sans que l’utilisateur ne le demande plus. Ceci peut également être utilisé pour les procédures de mise à niveau:

sudo apt-get dist-upgrade -y

Réparer les dépendances et les paquets brisés

Il peut arriver qu’une installation ne se termine pas correctement en raison de dépendances ou d’autres problèmes. Un scénario courant dans lequel cela peut se produire concerne l’installation d’un package + .deb + avec + dpkg +, ce qui ne résout pas les dépendances.

La commande + apt-get peut tenter de résoudre cette situation en lui passant la commande` + -f + `.

sudo apt-get install -f

Cela recherchera toutes les dépendances non satisfaites et tentera de les installer pour corriger l’arbre de dépendance. Si votre installation se plaint d’un problème de dépendance, ceci devrait être votre première étape pour tenter de le résoudre.

Télécharger le package depuis le dépôt

Il existe des cas principaux où il peut être utile de télécharger un package à partir des référentiels sans l’installer réellement. Vous pouvez le faire avec la sous-commande + download de` + apt-get`.

Comme il s’agit seulement de télécharger un fichier et d’impacter le système réel, aucun privilège + sudo + n’est requis:

apt-get download

Cela téléchargera le ou les paquetages spécifiés dans le répertoire en cours.

Télécharger la source du paquet depuis le référentiel

Bien que + apt + traite principalement avec les paquets + .deb +, vous pouvez également obtenir les fichiers source des paquetages, à condition que vos listes sources + apt + soient configurées avec ces informations.

Pour télécharger la source d’un paquet, vous devez avoir la ligne + deb-src + correspondante dans votre fichier + source.list + pour + apt +. Vous pouvez trouver comment faire cela dans la section sur l’ajout de référentiels apt.

Une fois que vous avez configuré les référentiels sources, vous pouvez télécharger la source d’un paquet en tapant:

sudo apt-get source

Cela téléchargera les fichiers du paquet dans le répertoire actuel. Il s’agit généralement d’un répertoire de paquets, d’un fichier de description + dsc +, et d’un paquetage contenant et compressé:

ls -F
sublime-text-2.0.2/                 sublime-text_2.0.2-1~webupd8~3.tar.gz
sublime-text_2.0.2-1~webupd8~3.dsc

Ceci peut être utilisé si vous souhaitez utiliser le paquet d’une distribution comme base pour d’autres modifications.

Installer un package .deb

Bien que la plupart des distributions recommandent l’installation de logiciels à partir de leurs référentiels maintenus, certains fournisseurs fournissent des fichiers bruts + .deb + que vous pouvez installer sur votre système.

Pour ce faire, nous utilisons un outil appelé + dpkg +. L’outil + dpkg + est principalement utilisé pour travailler avec des paquets individuels. Il ne tente pas d’effectuer les installations à partir du référentiel mais recherche les packages + .deb + dans le répertoire actuel ou le chemin fourni:

sudo dpkg --install .deb

Il est important de noter que l’outil + dpkg + n’implémente aucun traitement de dépendance. Cela signifie que s’il existe des dépendances non satisfaites, l’installation échouera. Heureusement, il marque les dépendances nécessaires, donc si toutes les dépendances sont disponibles dans les référentiels, vous pouvez les satisfaire facilement en tapant ce qui suit:

sudo apt-get install -f

Cela installera toutes les dépendances non satisfaites, y compris celles marquées par + dpkg +.

Installer des «tâches» logicielles avec Tasksel

Il est possible d’installer de grands ensembles de logiciels connexes grâce à l’utilisation de «tâches». Les tâches sont simplement des groupes de packages qui configurent un environnement donné lorsqu’ils sont installés ensemble. Les exemples de tâches incluent les serveurs LAMP, les environnements de bureau et les serveurs d’applications.

Certains systèmes peuvent ne pas avoir le paquet + tasksel + installé par défaut. Pour l’obtenir, vous pouvez taper:

sudo apt-get update
sudo apt-get install tasksel

Vous pouvez sélectionner les différents groupes de packages de tâches de manière interactive en tapant:

sudo tasksel

Cela affichera une interface vous permettant de sélectionner différents groupes de packages et d’appliquer les modifications.

Vous pouvez également imprimer la liste des tâches disponibles et leur état d’installation en tapant:

tasksel --list-task

Ensuite, vous pouvez choisir d’installer des tâches à partir de la ligne de commande en tapant:

sudo tasksel install

Suppression de packages et suppression de fichiers

Les opérations inverses d’installation et de téléchargement de packages sont également possibles avec les gestionnaires de packages. Cette section explique comment désinstaller des packages et nettoyer les fichiers pouvant être laissés par les opérations de package.

Désinstaller un package

Afin de supprimer un paquet installé, la sous-commande + remove + peut être donnée à + ​​apt-get +. Cela supprimera la plupart des fichiers installés par le paquet sur le système, à une exception près.

Cette commande laisse les fichiers de configuration en place afin que votre configuration soit disponible si vous devez réinstaller l’application à une date ultérieure. Cela est utile car cela signifie que les fichiers de configuration que vous avez personnalisés ne seront pas supprimés si vous supprimez accidentellement un paquet.

Pour terminer cette opération, vous devez simplement fournir le nom du paquet que vous souhaitez désinstaller:

sudo apt-get remove

Le paquet sera désinstallé à l’exception de vos fichiers de configuration.

Désinstaller un package et tous les fichiers de configuration associés

Si vous souhaitez supprimer un paquet et tous les fichiers associés de votre système, y compris les fichiers de configuration, vous pouvez utiliser la sous-commande + purge + de + apt-get +.

Contrairement à la commande + remove + mentionnée ci-dessus, la commande + purge + supprime tout. Ceci est utile si vous ne souhaitez pas enregistrer les fichiers de configuration ou si vous rencontrez des problèmes et souhaitez commencer à partir de zéro.

N’oubliez pas qu’une fois vos fichiers de configuration supprimés, vous ne pourrez plus les récupérer:

sudo apt-get purge

Maintenant, si vous avez besoin de réinstaller ce paquet, la configuration par défaut sera utilisée.

Supprimer toutes les dépendances automatiques qui ne sont plus nécessaires

Lors de la suppression de paquets de votre système avec + apt-get remove + ou + apt-get purge +, la cible du paquet sera supprimée. Cependant, toutes les dépendances installées automatiquement afin de satisfaire aux exigences d’installation resteront.

Pour supprimer automatiquement les packages installés en tant que dépendances qui ne sont plus requises par un package, vous pouvez utiliser la commande + autoremove +:

sudo apt-get autoremove

Si vous souhaitez supprimer tous les fichiers de configuration associés des dépendances à supprimer, vous voudrez ajouter l’option + - purge + à la commande + autoremove +. Cela nettoiera également les fichiers de configuration, comme le fait la commande + purge + pour une suppression ciblée:

sudo apt-get --purge autoremove

Nettoyer les fichiers de paquets téléchargés obsolètes

Au fur et à mesure que les packages sont ajoutés et supprimés des référentiels par les responsables de la distribution, certains packages deviennent obsolètes.

L’outil + apt-get + peut supprimer tous les fichiers de package sur le système local associés à des packages qui ne sont plus disponibles à partir des référentiels à l’aide de la commande + autoclean +.

Cela permettra de libérer de l’espace sur votre serveur et permettra au cache de votre système local d’être mis à jour sans le fardeau cruel qui résulte de la conservation d’informations inutiles.

sudo apt-get autoclean

Obtenir des informations sur les paquets

Chaque paquet contient une grande quantité de métadonnées accessibles à l’aide des outils de gestion de paquets. Cette section présentera quelques méthodes courantes pour obtenir des informations sur les packages disponibles et installés.

Afficher les informations sur un package

Pour afficher des informations détaillées sur un paquet dans les dépôts de votre distribution, vous pouvez utiliser la sous-commande + show + de + apt-cache +. La cible de cette commande est un nom de package dans le référentiel:

apt-cache show

Cette information sur tous les candidats d’installation pour le paquet en question. Chaque candidat aura des informations sur ses dépendances, sa version, son architecture, les conflits, le nom du fichier de package, la taille du package et de l’installation, ainsi qu’une description détaillée, entre autres.

Pour afficher des informations supplémentaires sur chacun des candidats, y compris une liste complète des dépendances inverses (liste des packages qui dépendent du package interrogé), utilisez plutôt la commande + showpkg +. Cela inclura beaucoup d’informations sur la relation de ce paquet avec d’autres:

apt-cache showpkg

Afficher des informations sur un package .deb

Pour afficher les détails sur un fichier + .deb +, vous pouvez utiliser l’indicateur + - info + avec la commande + dpkg +. La cible de cette commande devrait être le chemin d’accès à un fichier + .deb +:

dpkg --info .deb

Cela vous montrera des métadonnées sur le paquet en question. Cela inclut le nom et la version du paquet, l’architecture pour laquelle il a été construit, la taille et les dépendances requises, une description et les conflits.

Afficher les dépendances et les dépendances inversées

Pour lister spécifiquement les dépendances (les paquets sur lesquels ce paquet repose) et les dépendances inverses (les paquets qui dépendent de ce paquet), vous pouvez utiliser l’utilitaire + apt-cache +.

Pour les informations de dépendance conventionnelles, vous pouvez utiliser la sous-commande + depend +:

apt-cache depends

Cela affichera des informations sur chaque paquet répertorié comme dépendance, suggestion, recommandation ou conflit difficile.

Si vous avez besoin de savoir quels paquets dépendent d’un paquet donné, vous pouvez le transmettre à la sous-commande + rdepends +:

apt-cache rdepends

Afficher les versions de package installées et disponibles

Souvent, il existe plusieurs versions d’un paquet dans les référentiels, avec un seul paquet par défaut. Pour voir les versions disponibles d’un paquet, vous pouvez utiliser la sous-commande + policy + pour + apt-cache +:

apt-cache policy

Cela vous indiquera quelle version est installée (le cas échéant), le candidat qui sera installé par défaut si vous ne spécifiez pas de version avec la commande d’installation, ainsi qu’un tableau des versions de package, avec le poids qui indique la priorité de chaque version.

Ceci peut être utilisé pour déterminer quelle version sera installée et quelles alternatives sont disponibles. Etant donné que cette liste répertorie également les référentiels dans lesquels chaque version est située, cette option peut être utilisée pour déterminer si des référentiels supplémentaires ou des PPA remplacent les packages à partir des référentiels par défaut.

Montrer les paquets installés avec dpkg -l

Pour afficher les packages installés sur votre système, vous disposez de quelques options distinctes, en fonction du format et de la verbosité de la sortie souhaitée.

La première méthode implique l’utilisation de la commande + dpkg + ou de la commande + dpkg-query + avec le + -l +. La sortie de ces deux commandes est identique. En l’absence d’argument, il donne une liste de tous les packages installés ou partiellement installés sur le système. La sortie ressemblera à ceci:

dpkg -l
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                        Version                                 Architecture Description
+++-===========================================-=======================================-============-=====================================================================================================================
ii  account-plugin-generic-oauth                0.10bzr13.03.26-0ubuntu1.1              amd64        GNOME Control Center account plugin for single signon - generic OAuth
ii  accountsservice                             0.6.34-0ubuntu6                         amd64        query and manipulate user account information
ii  acl                                         2.2.52-1                                amd64        Access control list utilities
ii  acpi-support                                0.142                                   amd64        scripts for handling many ACPI events
ii  acpid                                       1:2.0.18-1ubuntu2                       amd64        Advanced Configuration and Power Interface event daemon
. . .

La sortie se poursuit pour chaque package du système. En haut de la sortie, vous pouvez voir la signification des trois premiers caractères de chaque ligne. Le premier caractère indique l’état souhaité du package. Ça peut être:

  • * u *: Inconnu

  • *j’ai installé

  • * r *: supprimé

  • * p *: purgé

  • * h *: Version maintenue

Le deuxième caractère indique l’état actuel du colis, tel qu’il est connu du système de conditionnement. Ceux-ci peuvent être:

  • * n *: non installé

  • *j’ai installé

  • * c *: Les fichiers de configuration sont présents, mais l’application est désinstallée.

  • * u *: non emballé. Les fichiers sont décompressés, mais pas encore configurés.

  • * f *: le paquet est à moitié installé, ce qui signifie qu’il y a eu une défaillance en cours d’installation qui a interrompu l’opération.

  • * w *: le package attend un déclencheur provenant d’un package séparé

  • * p *: le package a été déclenché par un autre package.

Le troisième caractère, qui sera simplement un espace vide pour la plupart des paquets, n’a qu’une autre option potentielle:

  • * r *: Cela indique qu’une réinstallation est nécessaire. Cela signifie généralement que le package est endommagé et dans un état non fonctionnel.

Le reste des colonnes contient le nom du package, la version, l’architecture et une description.

Afficher les états d’installation des packages filtrés

Si vous ajoutez un modèle de recherche après le modèle + -l +, + dpkg + répertorie tous les packages (installés ou non) contenant ce modèle. Par exemple, nous pouvons rechercher les bibliothèques de traitement YAML ici:

dpkg -l libyaml*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name            Version      Architecture Description
+++-===============-============-============-===================================
ii  libyaml-0-2:amd 0.1.4-2ubunt amd64        Fast YAML 1.1 parser and emitter li
ii  libyaml-dev:amd 0.1.4-2ubunt amd64        Fast YAML 1.1 parser and emitter li
un  libyaml-perl    <none>                    (no description available)
un  libyaml-syck-pe <none>                    (no description available)
ii  libyaml-tiny-pe 1.51-2       all          Perl module for reading and writing

Comme vous pouvez le constater dans la première colonne, les troisième et quatrième résultats ne sont pas installés. Cela vous donne chaque paquet qui correspond au modèle, ainsi que ses états actuel et souhaité.

Afficher les packages installés avec dpkg –get-selections

Une autre façon de rendre les packages installés sur votre système consiste à utiliser l’indicateur + - get-selections + avec + dpkg +.

Ceci fournit une liste de tous les paquets installés ou supprimés mais non purgés:

dpkg --get-selections

Pour différencier ces deux états, vous pouvez utiliser + awk + pour filtrer par état. Pour ne voir que les paquets installés, tapez:

dpkg --get-selections | awk '$2 ~ /^install/'

Pour obtenir la liste des packages supprimés dont les fichiers de configuration n’ont pas été purgés, vous pouvez plutôt taper:

dpkg --get-selections | awk '$2 !~ /^install/'

Rechercher les paquets installés

Pour rechercher un package spécifique dans votre package installé, vous pouvez ajouter une chaîne de filtrage après l’option + - get-selections +. Cela peut utiliser des caractères génériques pour faire correspondre. Encore une fois, cela montrera tous les paquetages installés ou ayant encore des fichiers de configuration sur le système:

dpkg --get-selections libz*

Vous pouvez, encore une fois, filtrer en utilisant les expressions + awk + de la dernière section.

Liste des fichiers installés par un package

Pour savoir quels fichiers sont responsables d’un paquet, vous pouvez utiliser l’indicateur + -L + avec la commande + dpkg +:

dpkg -L

Cela affichera le chemin absolu de chaque fichier contrôlé par le paquet. Cela n’inclura pas les fichiers de configuration générés par les processus du package.

Rechercher quel package est installé dans un emplacement

Pour savoir quel paquet est responsable d’un certain fichier dans votre système de fichiers, vous pouvez passer le chemin absolu à la commande + dpkg + avec l’indicateur + -S +.

Ceci imprimera le paquet qui a installé le fichier en question:

dpkg -S

N’oubliez pas que les fichiers déplacés par des scripts post-installation ne peuvent pas être liés au package par cette technique.

Trouver quel paquet fournit un fichier sans l’installer

Avec + dpkg +, il est simple de savoir quel paquet possède un fichier en utilisant l’option + -S +. Cependant, il peut arriver que vous ayez besoin de savoir quel paquet fournit un fichier ou une commande, même si le paquet associé n’est pas installé.

Pour ce faire, vous devrez installer un utilitaire appelé + apt-file. Cela maintient sa propre base de données d’informations, qui comprend le chemin d’installation de chaque fichier contrôlé par un package de la base de données.

Installez l’utilitaire en tapant:

sudo apt-get update
sudo apt-get install apt-file

Maintenant, mettez à jour la base de données de l’outil et recherchez un fichier en tapant:

sudo apt-file update
sudo apt-file search

Cela ne fonctionnera que pour les emplacements de fichiers installés directement par un package. Aucun fichier créé via des scripts de post-installation ne sera trouvé.

Transfert de listes de paquets entre systèmes

Plusieurs fois, vous souhaiterez peut-être sauvegarder la liste des packages installés à partir d’un système et l’utiliser pour installer un ensemble identique de packages sur un autre système. Ceci est également utile à des fins de sauvegarde. Cette section explique comment exporter et importer des listes de packages.

Exporter la liste de paquets

Si vous devez répliquer l’ensemble des packages installés sur un système, vous devez d’abord exporter votre liste de packages.

Vous pouvez exporter la liste des packages installés dans un fichier au format requis pour les importer ultérieurement en canalisant la sortie de + dpkg --get-selections +:

dpkg --get-selections > ~/packagelist.txt

Cette liste peut ensuite être copiée sur le deuxième ordinateur et importée.

Vous pouvez également souhaiter sauvegarder vos listes de sources et votre liste de clés de confiance. Vous pouvez sauvegarder vos sources en créant un répertoire avec les fichiers nécessaires et en les copiant par dessus:

mkdir ~/sources
cp -R /etc/apt/sources.list* ~/sources

Les clés de confiance peuvent être sauvegardées en tapant:

apt-key exportall > ~/trusted_keys.txt

Vous pouvez maintenant transférer le fichier + packagelist.txt, le répertoire` + source` et le fichier + confidence keys.txt vers un autre ordinateur à importer.

Importer une liste de paquets

Si vous avez créé une liste de paquets en utilisant + dpkg --get-selections + comme indiqué ci-dessus, vous pouvez également importer les packages sur un autre ordinateur en utilisant la commande + dpkg +.

Tout d’abord, vous devez ajouter les clés de confiance et implémenter les listes de sources que vous avez copiées à partir du premier ordinateur. En supposant que toutes les données que vous avez sauvegardées ont été copiées dans le répertoire de base du nouvel ordinateur, vous pouvez taper:

sudo apt-key add ~/trusted_keys.txt
sudo cp -R ~sources/* /etc/apt/

Ensuite, effacez l’état de tous les packages non essentiels du nouvel ordinateur. Cela garantira que vous appliquez les modifications à une table rase. Cela doit être fait avec le compte root ou les privilèges + sudo +:

sudo dpkg --clear-selections

Ceci marquera tous les paquets non essentiels pour la désinstallation. Nous devrions mettre à jour la liste de paquets locale afin que notre installation contienne des enregistrements pour tous les logiciels que nous voulons installer. La procédure réelle d’installation et de mise à niveau sera gérée par un outil appelé + dselect +.

Nous devons nous assurer que l’outil + dselect + est installé. Cet outil conserve sa propre base de données, nous devons donc également la mettre à jour avant de pouvoir continuer:

sudo apt-get update
sudo apt-get install dselect
sudo dselect update

Ensuite, nous pouvons appliquer la liste de paquets en haut de la liste actuelle pour configurer les paquets à conserver ou à télécharger:

sudo dpkg --set-selections < packagelist.txt

Cela définit le paquet indique que nous voulons. Pour appliquer les modifications, nous allons exécuter une + select-upgrade of, qui est une sous-commande` + apt-get`:

sudo apt-get dselect-upgrade

Cela téléchargera et installera tous les paquets nécessaires. Cela supprimera également tous les paquets marqués pour la désélection. En fin de compte, votre liste de paquets devrait correspondre à celle de l’ordinateur précédent, bien que les fichiers de configuration devront toujours être copiés ou modifiés.

Ajout de référentiels et de PPA

Bien que l’ensemble de référentiels par défaut fourni par la plupart des distributions contienne suffisamment de packages pour la plupart des utilisateurs, des sources supplémentaires peuvent parfois s’avérer utiles. Dans cette section, nous verrons comment configurer vos outils d’empaquetage pour consulter des sources supplémentaires.

Ajouter des AAE

Les PPA, ou archives de paquets personnels, sont une alternative aux référentiels traditionnels. Au moment d’écrire ces lignes, les PPA n’étaient disponibles que pour les systèmes Ubuntu. En règle générale, les PPA ont une portée plus petite que les référentiels et contiennent des ensembles ciblés d’applications gérées par le propriétaire du PPA.

L’ajout de PPA à votre système vous permet de gérer les paquets qu’ils contiennent avec vos outils de gestion de paquets habituels. Ceci peut être utilisé pour fournir des paquets plus à jour ou des paquets qui ne sont pas inclus dans les référentiels de la distribution. Veillez à ajouter uniquement des PPA auxquels vous faites confiance, car vous autoriserez un responsable non standard à créer des packages pour votre système.

Pour ajouter un PPA, vous pouvez utiliser la commande + add-apt-repository. La cible doit inclure l’étiquette + ppa: +, suivie du nom du propriétaire de l’Accès au contenu sur Launchpad, d’une barre oblique et du nom de l’APP:

sudo add-apt-repository ppa:/

On peut vous demander d’accepter la clé du conditionneur. Ensuite, le PPA sera ajouté à votre système, ce qui vous permettra d’installer les paquetages avec les commandes normales + apt +. Avant de rechercher ou d’installer des packages, veillez à mettre à jour votre cache local avec les informations relatives à votre nouveau PPA:

sudo apt-get update

Ajouter des référentiels

Pour ajouter des référentiels supplémentaires à votre système Ubuntu ou Debian, vous pouvez adopter deux approches différentes.

La première consiste à éditer directement les listes de sources. Vous pouvez soit éditer le fichier + / etc / apt / sources.list ou placer une nouvelle liste dans le répertoire` + / etc / apt / sources.list.d`. Si vous choisissez cette dernière route, le nom du fichier que vous créez doit se terminer par + .list +:

sudo nano /etc/apt/sources.list.d/.list

Dans le fichier, vous pouvez ajouter l’emplacement du nouveau référentiel en utilisant le format suivant:

Les différentes parties de la spécification du référentiel sont les suivantes:

  • * deb * ou * deb-src *: Ceci identifie le type de référentiel. Les référentiels conventionnels sont marqués avec + deb +, tandis que les référentiels sources commencent par + deb-src +.

  • * url *: l’URL principale du référentiel. Cela devrait être l’emplacement où le référentiel peut être trouvé.

  • * Nom du code de la version ou de la suite *: Il s’agit généralement du nom de code de la version de votre distribution, mais il peut s’agir du nom utilisé pour identifier un ensemble spécifique de packages créés pour votre version de la distribution.

  • * noms de composants *: les étiquettes pour la sélection des paquets que vous souhaitez avoir disponibles. C’est souvent une distinction fournie par le responsable du référentiel pour exprimer quelque chose sur la fiabilité ou les restrictions de licence du logiciel qu’il contient.

Vous pouvez ajouter ces lignes dans le fichier. La plupart des référentiels contiennent des informations sur le format exact à utiliser.

La deuxième façon d’y parvenir consiste à utiliser la commande + add-apt-repository. Ceci est généralement inclus par défaut sur Ubuntu, et pour Debian, il peut être installé avec le paquetage + software-properties-common +:

sudo apt-get update
sudo apt-get install software-properties-common

Ensuite, vous pouvez fournir les lignes que vous souhaitez ajouter à la commande + add-apt-repository. Ceux-ci devraient être dans le même format que celui que vous utiliseriez pour les ajouts manuels:

sudo add-apt-repository 'deb   '

Assurez-vous de mettre à jour votre cache de paquets local après l’application des mises à jour du référentiel afin que votre système connaisse les nouveaux packages disponibles:

sudo apt-get update

Conclusion

Il existe de nombreuses autres opérations de gestion de paquets que vous pouvez effectuer, mais nous avons essayé de couvrir ici les procédures les plus courantes. Si vous avez d’autres favoris, utilisez la section commentaires ci-dessous pour nous le faire savoir.

Related