Table des matières
Il y a beaucoup d'outils utilisés pour la gestion des paquets Debian, depuis des outils basés sur des interfaces texte ou graphique aux outils de bas niveau utilisés pour l'installation des paquets. Tous les outils disponibles reposent sur les outils de plus bas niveau pour fonctionner correctement et sont présentés ici selon un niveau de complexité décroissant.
Il est important de comprendre que les outils de gestion des paquets Debian de plus haut niveau comme aptitude ou synaptic reposent sur apt qui, lui-même, utilise dpkg pour la gestion des paquets sur le système.
Consultez le Chapitre 2. Gestion des paquets Debian de la Référence Debian pour plus d'informations sur les outils de gestion des paquets Debian. Ce document est disponible dans différentes langues et formats, voir l'entrée Référence de l'aperçu des manuels utilisateur et développeur Debian (DDP).
C'est le programme principal de gestion des paquets. Dpkg peut être exécuté avec beaucoup d'options. Quelques utilisations courantes :
Afficher toutes les options : dpkg --help
.
Afficher le fichier control (et d'autres informations) pour un paquet
particulier : dpkg --info foo_VVV-RRR.deb
.
Installer un paquet (incluant le désarchivage et la configuration) sur le
disque dur : dpkg --install foo_VVV-RRR.deb
.
Désarchiver (mais sans configurer) une archive Debian dans le système de
fichiers du disque dur : dpkg --unpack
foo_VVV-RRR.deb
. Notez que cette opération ne laisse
pas nécessairement le paquet dans un état
utilisable ; certains fichiers peuvent avoir besoin de personnalisation
pour fonctionner correctement. Cette commande supprime toute version déjà
installée du programme et exécute le script preinst (voir Section 7.6, « Qu'est-ce qu'un script Debian preinst, postinst, prerm et postrm ? ») du paquet.
Configurer un paquet qui a déjà été désarchivé : dpkg
--configure foo
. Entre autres choses, cette action lance le script
postinst (voir Section 7.6, « Qu'est-ce qu'un script Debian preinst, postinst, prerm et postrm ? ») du paquet. Il met aussi à
jour les fichiers listés dans le fichier conffiles
pour
ce paquet. Notez que l'option configure prend un nom de paquet (par exemple,
foo) et non le nom de l'archive Debian (par exemple,
foo_VVV-RRR.deb).
Extraire un fichier nommé « blurf » (ou un groupe de fichiers
nommés « blurf* ») depuis une archive Debian : dpkg
--fsys-tarfile foo_VVV-RRR.deb | tar -xf - 'blurf*'
.
Supprimer un paquet (mais pas ses fichiers de configuration) :
dpkg --remove foo
.
Supprimer un paquet (ainsi que ses fichiers de configuration) :
dpkg --purge foo
.
Lister l'état de l'installation des paquets contenant la chaîne (ou
l'expression rationnelle) « foo* » : dpkg --list
'foo*'
.
APT (Advanced Package Tool) est une interface avancée
pour le système de gestion des paquets Debian et il fournit le programme
apt-get. Il fournit des outils en ligne de commandes pour
chercher et gérer des paquets, ainsi que pour chercher des informations à
leur sujet ou accéder à toutes les fonctionnalités de bas niveau de la
bibliothèque d'arborescence libapt-pkg. Pour plus d'informations, voir le
guide de l'utilisateur dans
/usr/share/doc/apt-doc/guide.html/index.html
(il vous
faudra installer le paquet apt-doc
).
À partir de Debian Jessie, certaines commandes fréquemment utilisées comme apt-get et apt-cache ont des équivalents dans le nouveau binaire apt. Cela signifie que certaines commandes populaires telles que apt-get update, apt-get install, apt-get remove, apt-cache search, ou apt-cache show sont disponibles maintenant à l’aide d’apt, ce qui donne apt update, apt install, apt remove, apt search, ou apt show. Voici un aperçu des anciennes et des nouvelles commandes :
apt-get update -> apt update apt-get upgrade -> apt upgrade apt-get dist-upgrade -> apt full-upgrade apt-get install paquet -> apt install paquet apt-get remove paquet -> apt remove paquet apt-get autoremove -> apt autoremove apt-cache search chaîne -> apt search chaîne apt-cache policy paquet -> apt list -a paquet apt-cache show paquet -> apt show paquet apt-cache showpkg paquet -> apt show -a paquet
L'outil apt fusionne des fonctions d'apt-get et d'apt-cache, et son format de sortie par défaut est en couleurs plus jolies, ce qui le rend plus agréable pour les humains. Pour des scripts ou des cas d'usage avancé, apt-get reste préférable voire nécessaire.
apt-get provides a simple way to retrieve and install
packages from multiple sources using the command line. Unlike
dpkg, apt-get does not understand .deb
files, it works with the packages proper name and can only install .deb
archives from a source specified in
/etc/apt/sources.list
. apt-get will
call dpkg directly after downloading the .deb
archives[5] from the configured sources.
Les options les plus courantes d'apt-get :
Pour mettre à jour la liste des paquets connus par votre système, vous pouvez lancer :
apt update
(vous devriez exécuter cette commande régulièrement pour mettre à jour vos listes de paquets)
Pour installer le paquet foo
et toutes ses
dépendances :
apt install foo
Pour supprimer le paquet foo
de votre système :
apt remove foo
Pour supprimer le paquet foo
et ses fichiers de
configuration de votre système :
apt purge foo
Pour lister tous les paquets pour lesquels une nouvelle version est disponible, lancez :
apt list --upgradable
Pour mettre à jour tous les paquets de votre système, sans installer de paquets supplémentaires ou en supprimer :
apt upgrade
Pour mettre à jour votre système entier, en permettant si nécessaire l'installation de paquets supplémentaires ou la suppression de paquets :
apt full-upgrade
(La commande upgrade
conserve les paquets dans leur
version actuelle si la mise à jour nécessite l'installation de paquets
supplémentaires pour satisfaire une nouvelle dépendance. La commande
full-upgrade
est moins conservatrice.)
Notez que vous devez être authentifié en tant que root pour exécuter toute commande modifiant les paquets du système.
Notez qu'apt-get installe désormais par défaut les paquets recommandés et constitue, grâce à sa solidité, le programme de référence pour la gestion des paquets en console, leur installation mais aussi la mise à niveau majeure du système.
La suite d'outils apt inclut aussi le programme apt-cache pour questionner les listes de paquets. Vous pouvez l'utiliser pour trouver des paquets fournissant des fonctionnalités spécifiques à l'aide d'une simple requête ou d'une expression rationnelle et par des questions sur les dépendances dans le système de gestion des paquets. Les options les plus courantes d'apt-cache :
Pour trouver les paquets dont la description contient
mot
:
apt search mot
Pour afficher des informations détaillées sur un paquet :
apt show paquet
Pour afficher les dépendances d'un paquet :
apt-cache depends paquet
Pour afficher des informations détaillées des versions disponibles pour un paquet et les paquets ayant des dépendances inverses sur lui :
apt-cache showpkg paquet
Pour plus d'informations, installez le paquet apt
et lisez les pages de manuel pour
apt(8),
apt-get(8),
sources.list(5),
et installez le paquet apt-doc
ainsi
que /usr/share/doc/apt-doc/guide.html/index.html
.
Aptitude est un gestionnaire de paquet pour les systèmes Debian GNU/Linux qui fournit une interface au gestionnaire de paquet apt. Aptitude est une interface texte basée sur la bibliothèque curses. Les tâches peuvent être effectuées depuis une interface graphique ou la ligne de commande.
Aptitude peut être utilisé pour effectuer des tâches d'administration de manière rapide et facile. Il permet à l'utilisateur de voir la liste des paquets et d'effectuer des tâches d'administration de paquets comme l'installation, la mise à niveau et la suppression de paquets.
aptitude fournit les mêmes fonctionnalités que apt-get, ainsi que de nombreuses fonctions supplémentaires :
Aptitude permet d'accéder facilement à toutes les versions d'un paquet.
Aptitude facilite la recherche de logiciels obsolètes en les listant sous « Paquets obsolètes ou créés localement »
Aptitude inclut un système assez puissant pour rechercher des paquets particuliers. Les utilisateurs familiers avec mutt le maîtriseront rapidement car la syntaxe a été inspirée de celle de mutt.
Aptitude peut être utilisé pour installer les tâches prédéfinies. Pour plus d'information, consultez Section 8.1.5, « tasksel ».
aptitude en mode plein écran intègre les fonctionnalités de su et peut être utilisé par un utilisateur normal. Le programme su sera appelé (et le mot de passe root demandé s'il y en a un) lorsque les privilèges d'administrateur seront nécessaires.
Vous pouvez utiliser aptitude au travers d'une interface
graphique (en lançant simplement aptitude
) ou directement
en ligne de commande. La syntaxe utilisée en ligne de commande est très
similaire à celle utilisée avec apt-get. Par exemple,
pour installer le paquet foo
vous pouvez lancer
aptitude install
.
foo
Notez que aptitude est le gestionnaire de paquets recommandé pour la gestion quotidienne des paquets en console.
Pour plus d'informations, lisez la page de manuel
aptitude(8)
et installez le paquet aptitude-doc
.
synaptic est un gestionnaire graphique de paquets qui vous permet d'installer, de mettre à jour et de supprimer des paquets logiciels d'une manière conviviale. En plus des fonctionnalités offertes par aptitude, synaptic permet d'éditer la liste des dépôts de logiciels et de parcourir toute la documentation relative à un paquet. Pour plus d'informations, consulez le site web de Synaptic.
Lorsque vous désirez effectuer une tâche particulière, il peut être
difficile de trouver les paquets appropriés à votre besoin. Les développeurs
Debian ont défini des tâches
: une tâche est un ensemble
de paquets Debian distincts qui sont tous destinés à la même activité. Les
tâches peuvent être installées en utilisant le programme
tasksel ou aptitude.
Typically, the Debian installer will automatically install the task
associated with a standard system and a desktop environment. The specific
desktop environment installed will depend on the CD/DVD media used, most
commonly it will be the GNOME desktop (gnome-desktop
task). Also, depending on your selections throughout the installation
process, tasks might be automatically installed in your system. For
example, if you selected a language other than English, the task associated
with it will be installed automatically too.
Ce programme travaille sur les fichiers archive Debian
(.deb
). Quelques utilisations courantes :
Afficher toutes les options : dpkg-deb --help
.
Afficher les fichiers présents dans une archive Debian :
dpkg-deb --contents foo_VVV-RRR.deb
)
Extraire les fichiers contenus dans une archive Debian dans un répertoire
particulier de l'utilisateur : dpkg-deb --extract
foo_VVV-RRR.deb tmp
extrait tous les fichiers de
foo_VVV-RRR.deb
dans le répertoire
tmp/
. C'est pratique pour examiner le contenu d'un paquet
dans un répertoire localisé, sans installer le paquet sur le système de
fichiers racine.
Extraire les fichiers de contrôle du paquet : dpkg-deb --control
foo_VVV-RRR.deb tmp
.
Notez que tous les paquets qui ont été simplement désarchivés en utilisant
dpkg-deb --extract
ne seront pas correctement installés,
vous devriez employer dpkg --install
à la place.
Vous trouverez plus d'informations dans la page de manuel dpkg-deb(1).
Le noyau (et le système de fichiers) dans les systèmes Debian GNU/Linux permet le remplacement de fichiers même lorsqu'ils sont utilisés.
Debian fournit aussi un programme appelé start-stop-daemon qui est utilisé pour activer les démons au démarrage du système ou les arrêter lors d'un changement de niveau d'exécution (par exemple, lors du passage du mode multi-utilisateur au niveau mono-utilisateur ou lors de l'arrêt du système). Ce programme est aussi utilisé par les scripts d'installation, lors de l'installation d'un paquet contenant un démon, pour arrêter les démons en fonctionnement et les redémarrer si nécessaire.
Pour connaître l'état de tous les paquets installés sur un système Debian exécutez la commande
dpkg --list
Cela affiche un résumé sur une ligne pour chaque paquet, donnant un symbole de l'état en deux lettres (expliqué dans l'entête), le nom du paquet, la version installée et une courte description.
Pour connaître l'état de paquets dont le nom correspond au motif commençant par « foo », lancez la commande :
dpkg --list 'foo*'
Pour obtenir un rapport plus détaillé pour un paquet particulier, lancez la commande :
dpkg --status packagename
Pour lister tous les fichiers fournis par le paquet installé
foo
, exécutez la commande suivante :
dpkg --listfiles foo
Rappelez-vous que les fichiers créés par les scripts d'installation ne sont pas affichés.
Pour identifier le paquet qui a produit le fichier appelé
foo
, exécutez l'une des commandes suivantes :
dpkg --search foo
Cela recherche foo
dans les paquets installés. (Cela est
équivalent (actuellement) à la recherche de tous les fichiers ayant une
extension .list
dans le répertoire
/var/lib/dpkg/info/
et à ajuster la sortie pour
n'afficher que les noms de tous les paquets le contenant).
Une alternative plus rapide à cela est l'outil dlocate.
dlocate -S foo
zgrep foo Contents-ARCH.gz
This searches for files which contain the substring foo
in their full path names. The files Contents-ARCH.gz
(where ARCH represents the wanted architecture) reside in the major package
directories (main, non-free, contrib) at a Debian archive site (i.e. under
/debian/dists/bullseye
). A
Contents
file refers only to the packages in the
subdirectory tree where it resides. Therefore, a user might have to search
more than one Contents
files to find the package
containing the file foo
.
Cette méthode a l'avantage par rapport à dpkg --search
parce qu'elle permet de trouver des fichiers dans des paquets qui ne sont
pas installés sur votre système.
apt-file search
foo
Si vous installez apt-file
,
similaire à ce qui précède, ceci recherche des fichiers qui contiennent la
sous-chaîne ou l'expression rationelle foo
dans leurs
noms de chemin. L'avantage par rapport à l'exemple ci-dessus est que vous
n'avez pas besoin de rechercher les fichiers
Contents-ARCH.gz
car ceci est fait automatiquement pour
toutes les sources définies dans le fichier
/etc/apt/sources.list
quand vous lancez (sous le compte
root) apt-file update
.
Certains paquets sont découpés en un paquet pour le programme (« foo ») et un paquet pour les données « foo-data » (ou en « foo » et « foo-doc »). Cela est vrai pour beaucoup de jeux, d'applications multimédia et de dictionnaires dans Debian. Cela a été introduit parce que certains utilisateurs pourraient vouloir accéder aux données sans installer le programme ou parce que le programme peut être exécuté sans les données, ce qui rend « foo-data » facultatif.
Des situations similaires apparaissent lorsqu'il s'agit de gérer les bibliothèques : généralement elles sont installées puisque des paquets applicatifs dépendent d'elles. Lorsqu'un paquet applicatif est purgé, le paquet fournissant la bibliothèque peut être conservé sur le système. Par exemple, lorsqu'une application ne dépend plus de libdb4.2, mais de libdb4.3, le paquet libdb4.2 peut être conservé après la mise à jour du paquet applicatif.
Dans ces cas-là, « foo-data » ne dépend pas de « foo », donc quand vous supprimez le paquet « foo », la plupart des outils de gestion de paquets ne supprimeront pas automatiquement « foo-data ». Cela reste valable pour les paquets de bibliothèques. Cela est nécessaire pour ne pas avoir de dépendance circulaire. Toutefois, si vous utilisez apt-get (voir Section 8.1.2, « APT ») ou aptitude (voir Section 8.1.3, « aptitude ») comme outil de gestion de paquets, il dépistera les paquets installés automatiquement et les supprimera quand ils ne seront plus utilisés par aucun paquet.
[5] Notice that there are ports that make this tool available with other package management systems, like Red Hat package manager, also known as rpm