102.4 Leçon 1
Certification : |
LPIC-1 |
---|---|
Version : |
5.0 |
Thème : |
102 Installer Linux et gérer les paquets |
Objectif : |
102.4 Gérer les paquets sous Debian |
Leçon : |
1 sur 1 |
Introduction
Il y a longtemps, lorsque Linux en était encore à ses débuts, le moyen le plus courant de distribuer un logiciel était sous forme d’un fichier compressé (généralement une archive .tar.gz
) avec le code source, qu’il fallait décompresser et compiler soi-même.
Cependant, à mesure que la quantité et la complexité des logiciels augmentaient, la nécessité de trouver un moyen de distribuer des logiciels pré-compilés s’imposait. En effet, tout le monde n’avait pas les ressources, en termes de temps et de puissance de calcul, pour compiler de gros projets comme le noyau Linux ou un serveur X.
Petit à petit, les efforts pour normaliser un mode de distribution de ces "paquets" logiciels se sont multipliés, et les premiers gestionnaires de paquets ont vu le jour. Ces outils ont considérablement facilité l’installation, la configuration ou la suppression de logiciels sur un système.
L’un d’entre eux était le format de paquet Debian (.deb
) et son outil de paquets (dpkg
). Aujourd’hui, ils sont largement utilisés non seulement sur Debian lui-même, mais aussi sur ses dérivés, comme Ubuntu et ses variantes.
Un autre outil de gestion des paquets populaire sur les systèmes basés sur Debian est le Advanced Package Tool (apt
), qui peut simplifier de nombreux aspects de l’installation, de la maintenance et de la suppression des paquets, ce qui rend la tâche beaucoup plus facile.
Dans cette leçon, nous allons apprendre comment utiliser aussi bien dpkg
que apt
pour obtenir, installer, maintenir et supprimer des logiciels sur un système Linux basé sur Debian.
L’outil Debian Package (dpkg)
L’outil Debian Package (dpkg
) est l’utilitaire de base pour installer, configurer, maintenir et supprimer des paquets logiciels sur les systèmes basés sur Debian. L’opération la plus simple consiste à installer un paquet .deb
, ce qui peut être fait avec :
# dpkg -i PACKAGENAME
Où NOMDUPAQUET
est le nom du fichier .deb
que vous voulez installer.
Les mises à jour des paquets sont traitées de la même manière. Avant d’installer un paquet, dpkg
va vérifier si une version précédente existe déjà sur le système. Si c’est le cas, le paquet sera mis à niveau vers la nouvelle version. Autrement, une nouvelle copie sera installée.
Gérer les dépendances
La plupart du temps, un paquet pourra dépendre d’autres paquets pour fonctionner comme prévu. Par exemple, un éditeur d’images pourra avoir besoin de bibliothèques pour ouvrir des fichiers JPEG, ou un autre programme pourra avoir besoin d’un widget toolkit comme Qt ou GTK pour son interface utilisateur.
dpkg
va vérifier si ces dépendances sont installées sur votre système, et il ne pourra pas installer le paquet si elles ne sont pas présentes. Dans ce cas, dpkg
affichera la liste des paquets manquants. Cependant, il ne peut pas résoudre les dépendances par lui-même.
Dans l’exemple ci-dessous, l’utilisateur essaie d’installer le paquet de l’éditeur vidéo OpenShot, mais certaines dépendances sont absentes :
# dpkg -i openshot-qt_2.4.3+dfsg1-1_all.deb (Reading database ... 269630 files and directories currently installed.) Preparing to unpack openshot-qt_2.4.3+dfsg1-1_all.deb ... Unpacking openshot-qt (2.4.3+dfsg1-1) over (2.4.3+dfsg1-1) ... dpkg: dependency problems prevent configuration of openshot-qt: openshot-qt depends on fonts-cantarell; however: Package fonts-cantarell is not installed. openshot-qt depends on python3-openshot; however: Package python3-openshot is not installed. openshot-qt depends on python3-pyqt5; however: Package python3-pyqt5 is not installed. openshot-qt depends on python3-pyqt5.qtsvg; however: Package python3-pyqt5.qtsvg is not installed. openshot-qt depends on python3-pyqt5.qtwebkit; however: Package python3-pyqt5.qtwebkit is not installed. openshot-qt depends on python3-zmq; however: Package python3-zmq is not installed. dpkg: error processing package openshot-qt (--install): dependency problems - leaving unconfigured Processing triggers for mime-support (3.60ubuntu1) ... Processing triggers for gnome-menus (3.32.0-1ubuntu1) ... Processing triggers for desktop-file-utils (0.23-4ubuntu1) ... Processing triggers for hicolor-icon-theme (0.17-2) ... Processing triggers for man-db (2.8.5-2) ... Errors were encountered while processing: openshot-qt
Comme indiqué ci-dessus, OpenShot dépend des paquets fonts-cantarell
, python3-openshot
, python3-pyqt5
, python3-pyqt5.qtsvg
, python3-pyqt5.qtwebkit
et python3-zmq
. Tous ces composants doivent être installés avant que l’installation d’OpenShot puisse réussir.
Supprimer des paquets
Pour supprimer un paquet, passez le paramètre -r
à dpkg
, suivi du nom du paquet. Par exemple, la commande suivante va supprimer le paquet unrar
du système :
# dpkg -r unrar (Reading database ... 269630 files and directories currently installed.) Removing unrar (1:5.6.6-2) ... Processing triggers for man-db (2.8.5-2) ...
L’opération de suppression effectue également un contrôle des dépendances, et un paquet ne peut être supprimé que si tous les autres paquets qui en dépendent sont également supprimés. Si vous essayez de le faire, vous obtiendrez un message d’erreur comme celui ci-dessous :
# dpkg -r p7zip dpkg: dependency problems prevent removal of p7zip: winetricks depends on p7zip; however: Package p7zip is to be removed. p7zip-full depends on p7zip (= 16.02+dfsg-6). dpkg: error processing package p7zip (--remove): dependency problems - not removing Errors were encountered while processing: p7zip
Vous pouvez passer plusieurs noms de paquets à dpkg -r
, de sorte qu’ils soient tous supprimés en même temps.
Lorsqu’un paquet est supprimé, les fichiers de configuration correspondants restent en place sur le système. Si vous voulez supprimer tout ce qui est associé au paquet, utilisez l’option -P
(purge) au lieu de -r
.
Note
|
Vous pouvez forcer |
Obtenir des informations sur les paquets
Pour obtenir des informations sur un paquet .deb
, telles que sa version, son architecture, son mainteneur, ses dépendances et autres, utilisez la commande dpkg
avec le paramètre -I
, suivi du nom de fichier du paquet que vous voulez inspecter :
# dpkg -I google-chrome-stable_current_amd64.deb new Debian package, version 2.0. size 59477810 bytes: control archive=10394 bytes. 1222 bytes, 13 lines control 16906 bytes, 457 lines * postinst #!/bin/sh 12983 bytes, 344 lines * postrm #!/bin/sh 1385 bytes, 42 lines * prerm #!/bin/sh Package: google-chrome-stable Version: 76.0.3809.100-1 Architecture: amd64 Maintainer: Chrome Linux Team <chromium-dev@chromium.org> Installed-Size: 205436 Pre-Depends: dpkg (>= 1.14.0) Depends: ca-certificates, fonts-liberation, libappindicator3-1, libasound2 (>= 1.0.16), libatk-bridge2.0-0 (>= 2.5.3), libatk1.0-0 (>= 2.2.0), libatspi2.0-0 (>= 2.9.90), libc6 (>= 2.16), libcairo2 (>= 1.6.0), libcups2 (>= 1.4.0), libdbus-1-3 (>= 1.5.12), libexpat1 (>= 2.0.1), libgcc1 (>= 1:3.0), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.31.8), libgtk-3-0 (>= 3.9.10), libnspr4 (>= 2:4.9-2~), libnss3 (>= 2:3.22), libpango-1.0-0 (>= 1.14.0), libpangocairo-1.0-0 (>= 1.14.0), libuuid1 (>= 2.16), libx11-6 (>= 2:1.4.99.1), libx11-xcb1, libxcb1 (>= 1.6), libxcomposite1 (>= 1:0.3-1), libxcursor1 (>> 1.1.2), libxdamage1 (>= 1:1.1), libxext6, libxfixes3, libxi6 (>= 2:1.2.99.4), libxrandr2 (>= 2:1.2.99.3), libxrender1, libxss1, libxtst6, lsb-release, wget, xdg-utils (>= 1.0.2) Recommends: libu2f-udev Provides: www-browser Section: web Priority: optional Description: The web browser from Google Google Chrome is a browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier.
Afficher les paquets installés et leur contenu
Pour obtenir une liste de tous les paquets installés sur votre système, utilisez l’option --get-selections
, comme dans dpkg --get-selections
. Vous pouvez également obtenir une liste de tous les fichiers installés par un paquet spécifique en passant le paramètre -L NOMDUPAQUET
à dpkg
, comme ci-dessous :
# dpkg -L unrar /. /usr /usr/bin /usr/bin/unrar-nonfree /usr/share /usr/share/doc /usr/share/doc/unrar /usr/share/doc/unrar/changelog.Debian.gz /usr/share/doc/unrar/copyright /usr/share/man /usr/share/man/man1 /usr/share/man/man1/unrar-nonfree.1.gz
Savoir à quel paquet appartient un fichier
Il est parfois nécessaire de savoir à quel paquet appartient un fichier donné dans votre système. Pour ce faire, vous pouvez utiliser l’outil dpkg-query
suivi du paramètre -S
et du chemin d’accès au fichier en question :
# dpkg-query -S /usr/bin/unrar-nonfree unrar: /usr/bin/unrar-nonfree
Reconfigurer des paquets installés
Lorsqu’un paquet est installé, il y a une étape de configuration appelée post-install où un script est exécuté pour configurer tout ce qui est nécessaire au bon fonctionnement du logiciel, comme les permissions, le placement des fichiers de configuration, etc. Des questions peuvent également être posées à l’utilisateur afin de définir ses préférences relatives au fonctionnement du logiciel.
Parfois, en raison d’un fichier de configuration endommagé ou malformé, vous pouvez souhaiter restaurer les paramètres d’un paquet à son état initial. Ou alors, vous souhaitez peut-être modifier les réponses que vous avez fournies aux questions de configuration initiale. Pour ce faire, invoquez la commande dpkg-reconfigure
suivie du nom du paquet.
Cette commande va sauvegarder les anciens fichiers de configuration, décompresser les nouveaux vers les bons répertoires et exécuter le script post-install fourni par le paquet, comme si le paquet avait été installé pour la première fois. Essayez de reconfigurer le paquet tzdata
comme suit :
# dpkg-reconfigure tzdata
Advanced Package Tool (apt)
APT (Advanced Package Tool) est un système de gestion des paquets qui comprend un ensemble d’outils et simplifie considérablement l’installation, la mise à jour, la suppression et la gestion des paquets. APT offre des fonctionnalités telles que la recherche avancée et la résolution automatique des dépendances.
APT n’est pas un "remplacement" de dpkg
. Vous pouvez l’imaginer comme un "frontal" qui facilite les opérations et vient combler les lacunes des fonctionnalités de dpkg
, comme la résolution des dépendances.
APT travaille de concert avec les dépôts de logiciels qui contiennent les paquets disponibles à l’installation. Ces dépôts peuvent être un serveur local ou distant, ou (moins courant) un disque CD-ROM.
Les distributions Linux comme Debian et Ubuntu maintiennent leurs propres dépôts, et d’autres dépôts peuvent être mis à disposition par des développeurs ou des groupes d’utilisateurs dans le but de fournir des logiciels qui ne sont pas disponibles dans les dépôts officiels des distributions.
Il existe de nombreux outils qui interagissent avec APT, les principaux étant :
apt-get
-
utilisé pour télécharger, installer, mettre à jour ou supprimer des paquets du système.
apt-cache
-
utilisé pour effectuer des opérations dans l’index des paquets, notamment la recherche.
apt-file
-
utilisé pour la recherche de fichiers à l’intérieur des paquets.
Il existe également un outil plus convivial appelé simplement apt
, qui combine les options les plus utilisées de apt-get
et apt-cache
en une seule commande. La plupart des commandes pour apt
sont les mêmes que celles pour apt-get
et donc souvent interchangeables. Cependant, comme apt
peut ne pas être installé sur le système, il est recommandé d’apprendre à utiliser apt-get
et apt-cache
.
Note
|
|
Mettre à jour l’index des paquets
Avant d’installer ou de mettre à jour un logiciel avec APT, il est recommandé d’actualiser l’index des paquets afin de récupérer les informations sur les nouveaux paquets et les paquets mis à jour. Cela s’effectue avec la commande apt-get
suivie du paramètre update
:
# apt-get update Ign:1 http://dl.google.com/linux/chrome/deb stable InRelease Hit:2 https://repo.skype.com/deb stable InRelease Hit:3 http://us.archive.ubuntu.com/ubuntu disco InRelease Hit:4 http://repository.spotify.com stable InRelease Hit:5 http://dl.google.com/linux/chrome/deb stable Release Hit:6 http://apt.pop-os.org/proprietary disco InRelease Hit:7 http://ppa.launchpad.net/system76/pop/ubuntu disco InRelease Hit:8 http://us.archive.ubuntu.com/ubuntu disco-security InRelease Hit:9 http://us.archive.ubuntu.com/ubuntu disco-updates InRelease Hit:10 http://us.archive.ubuntu.com/ubuntu disco-backports InRelease Reading package lists... Done
Tip
|
Au lieu de |
Installer et supprimer des paquets
Maintenant que l’index des paquets est à jour, vous pouvez installer un paquet. Cela se fait avec apt-get install
suivi du nom du paquet que vous souhaitez installer :
# apt-get install xournal Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: xournal 0 upgraded, 1 newly installed, 0 to remove and 75 not upgraded. Need to get 285 kB of archives. After this operation, 1041 kB of additional disk space will be used.
De même, pour supprimer un paquet, utilisez apt-get remove
suivi du nom du paquet :
# apt-get remove xournal Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: xournal 0 upgraded, 0 newly installed, 1 to remove and 75 not upgraded. After this operation, 1041 kB disk space will be freed. Do you want to continue? [Y/n]
Sachez que lors de l’installation ou de la suppression de paquets, APT va effectuer une résolution automatique des dépendances. Cela signifie que tout paquet supplémentaire requis par le paquet que vous installez sera également installé, et que les paquets qui dépendent du paquet que vous supprimez seront également supprimés. APT va toujours afficher ce qui va être installé ou supprimé avant de vous demander si vous voulez continuer :
# apt-get remove p7zip Reading package lists... Done Building dependency tree The following packages will be REMOVED: android-libbacktrace android-libunwind android-libutils android-libziparchive android-sdk-platform-tools fastboot p7zip p7zip-full 0 upgraded, 0 newly installed, 8 to remove and 75 not upgraded. After this operation, 6545 kB disk space will be freed. Do you want to continue? [Y/n]
Notez que lorsqu’un paquet est retiré, les fichiers de configuration correspondants sont laissés en place sur le système. Pour supprimer le paquet et tout fichier de configuration, utilisez le paramètre purge
au lieu de remove
ou le paramètre remove
avec l’option --purge
:
# apt-get purge p7zip
ou bien
# apt-get remove --purge p7zip
Tip
|
Vous pouvez également utiliser |
Réparer les dépendances cassées
Il est possible d’avoir des "dépendances cassées" sur un système. Cela signifie qu’un ou plusieurs paquets installés dépendent d’autres paquets qui n’ont pas été installés ou qui ne sont plus présents. Cela peut se produire suite à une erreur APT ou à cause d’un paquet installé manuellement.
Pour résoudre ce problème, utilisez la commande apt-get install -f
. Cette opération vise à réparer (fix) les paquets cassés en installant les dépendances manquantes, afin de s’assurer que tous les paquets soient à nouveau cohérents.
Tip
|
Vous pouvez également utiliser |
Mettre à jour des paquets
APT peut être utilisé pour mettre à jour automatiquement tous les paquets installés vers les dernières versions disponibles dans les dépôts. Cela se fait à l’aide de la commande apt-get upgrade
. Avant de l’invoquer, pensez à mettre à jour l’index des paquets avec apt-get update
.
# apt-get update Hit:1 http://us.archive.ubuntu.com/ubuntu disco InRelease Hit:2 http://us.archive.ubuntu.com/ubuntu disco-security InRelease Hit:3 http://us.archive.ubuntu.com/ubuntu disco-updates InRelease Hit:4 http://us.archive.ubuntu.com/ubuntu disco-backports InRelease Reading package lists... Done # apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages have been kept back: gnome-control-center The following packages will be upgraded: cups cups-bsd cups-client cups-common cups-core-drivers cups-daemon cups-ipp-utils cups-ppdc cups-server-common firefox-locale-ar (...) 74 upgraded, 0 newly installed, 0 to remove and 1 not upgraded. Need to get 243 MB of archives. After this operation, 30.7 kB of additional disk space will be used. Do you want to continue? [Y/n]
La liste récapitulative en bas de l’affichage indique le nombre de paquets qui seront mis à niveau, le nombre de paquets qui seront installés, retirés ou conservés, la taille totale du téléchargement et l’espace disque supplémentaire nécessaire pour mener à bien l’opération. Pour effectuer la mise à niveau, répondez par Y
et attendez que apt-get
complète la tâche.
Pour mettre à jour un seul paquet, il suffit d’invoquer apt-get upgrade
suivi du nom du paquet.
Tip
|
Vous pouvez également utiliser |
Le cache local
Lorsque vous installez ou mettez à jour un paquet, le fichier .deb
correspondant est téléchargé dans un répertoire de cache local avant que le paquet ne soit installé. Par défaut, ce répertoire est /var/cache/apt/archives
. Les fichiers partiellement téléchargés sont copiés dans /var/cache/apt/archives/partial/
.
Au fur et à mesure que vous installez et mettez à jour des paquets, le répertoire de cache peut devenir assez volumineux. Pour récupérer de l’espace, vous pouvez vider le cache en utilisant la commande apt-get clean
. Cette opération supprime le contenu des répertoires /var/cache/apt/archives
et /var/cache/apt/archives/partial/
.
Tip
|
Vous pouvez également utiliser |
Rechercher des paquets
L’outil apt-cache
peut être utilisé pour effectuer des opérations sur l’index des paquets, telles que la recherche d’un paquet spécifique ou la liste des paquets qui contiennent un fichier particulier.
Pour effectuer une recherche, invoquez apt-cache search
suivi de la chaîne de caractères à rechercher. Le résultat sera une liste de chaque paquet qui contient le motif recherché, soit dans son nom de paquet, soit dans sa description ou dans les fichiers fournis.
# apt-cache search p7zip liblzma-dev - XZ-format compression library - development files liblzma5 - XZ-format compression library forensics-extra - Forensics Environment - extra console components (metapackage) p7zip - 7zr file archiver with high compression ratio p7zip-full - 7z and 7za file archivers with high compression ratio p7zip-rar - non-free rar module for p7zip
Dans l’exemple ci-dessus, l’entrée liblzma5 - XZ-format compression library
ne semble pas correspondre au motif recherché. Cependant, si nous affichons les informations complètes avec la description pour le paquet en invoquant le paramètre show
, nous retrouvons la chaîne de caractères recherchée :
# apt-cache show liblzma5 Package: liblzma5 Architecture: amd64 Version: 5.2.4-1 Multi-Arch: same Priority: required Section: libs Source: xz-utils Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Jonathan Nieder <jrnieder@gmail.com> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 259 Depends: libc6 (>= 2.17) Breaks: liblzma2 (<< 5.1.1alpha+20110809-3~) Filename: pool/main/x/xz-utils/liblzma5_5.2.4-1_amd64.deb Size: 92352 MD5sum: 223533a347dc76a8cc9445cfc6146ec3 SHA1: 8ed14092fb1caecfebc556fda0745e1e74ba5a67 SHA256: 01020b5a0515dbc9a7c00b464a65450f788b0258c3fbb733ecad0438f5124800 Homepage: https://tukaani.org/xz/ Description-en: XZ-format compression library XZ is the successor to the Lempel-Ziv/Markov-chain Algorithm compression format, which provides memory-hungry but powerful compression (often better than bzip2) and fast, easy decompression. . The native format of liblzma is XZ; it also supports raw (headerless) streams and the older LZMA format used by lzma. (For 7-Zip's related format, use the p7zip package instead.)
Vous pouvez utiliser des expressions régulières pour le motif de la recherche, ce qui permet des recherches très complexes (et précises). En revanche, ce sujet n’entre pas dans le cadre de cette leçon.
Tip
|
Vous pouvez également utiliser |
La liste des sources
APT utilise une liste de sources pour savoir où récupérer les paquets. Cette liste est conservée dans le fichier sources.list
, situé dans le répertoire /etc/apt
. Ce fichier peut être édité directement avec un éditeur de texte comme vi
, pico
ou nano
, ou avec des outils graphiques comme aptitude
ou synaptic
.
Une entrée typique dans sources.list
ressemble à ceci :
deb http://us.archive.ubuntu.com/ubuntu/ disco main restricted universe multiverse
La syntaxe comprend le type d’archive, l’URL, la distribution et un où plusieurs composants, avec :
- Type d’archive
-
Un dépôt peut contenir des paquets contenant des logiciels prêts à l’emploi (paquets binaires de type
deb
) ou le code source de ces logiciels (paquets sources de typedeb-src
). L’exemple ci-dessus fournit des paquets binaires. - URL
-
L’URL du dépôt.
- Distribution
-
Le nom (ou nom de code) de la distribution pour laquelle les paquets sont fournis. Un dépôt peut héberger des paquets pour plusieurs distributions. Dans l’exemple ci-dessus,
disco
est le nom de code pour Ubuntu 19.04 Disco Dingo. - Composants
-
Chaque composant représente un ensemble de paquets. Ces composants peuvent varier selon les différentes distributions de Linux. Par exemple, sur Ubuntu et ses déclinaisons, on aura :
main
-
contient des paquets open source officiellement pris en charge.
restricted
-
contient des logiciels propriétaires officiellement pris en charge, comme les pilotes de cartes graphiques.
universe
-
contient des logiciels open source maintenus par la communauté.
multiverse
-
contient des logiciels propriétaires non pris en charge ou autrement protégés par un brevet.
Sur Debian, les principaux composants sont :
main
-
contient les paquets conformes aux principes du logiciel libre selon Debian (DFSG pour Debian Free Software Guidelines), qui ne dépendent pas de logiciels extérieurs à ce domaine pour fonctionner. Les paquets inclus ici sont considérés comme faisant partie de la distribution Debian.
contrib
-
contient les paquets conformes aux DFSG, mais qui dépendent d’autres paquets qui ne sont pas dans
main
. non-free
-
contient les paquets qui ne sont pas conformes aux DFSG.
security
-
contient les mises à jour de sécurité.
backports
-
contient des versions plus récentes de paquets qui sont dans
main
. Le cycle de développement des versions stables de Debian est assez long (environ deux ans), et cela permet aux utilisateurs d’obtenir les paquets les plus récents sans avoir à modifier le dépôt principalmain
.
Note
|
Vous pouvez en savoir plus sur les Debian Free Software Guidelines à l’adresse suivante : https://www.debian.org/social_contract#guidelines |
Pour ajouter un nouveau dépôt pour obtenir des paquets, vous pouvez simplement ajouter la ligne correspondante (généralement fournie par le mainteneur du dépôt) à la fin de sources.list
, enregistrer le fichier et recharger l’index du paquet avec apt-get update
. Une fois que c’est fait, les paquets du nouveau dépôt seront disponibles à l’installation avec apt-get install
.
Gardez à l’esprit que les lignes commençant par le caractère #
sont considérées comme des commentaires et donc ignorées.
Le répertoire /etc/apt/sources.list.d
Le répertoire /etc/apt/sources.list.d
vous permet d’ajouter des fichiers avec des dépôts supplémentaires exploitables par APT, et sans modifier le fichier principal /etc/apt/sources.list
. Il s’agit là de simples fichiers texte avec la même syntaxe que celle décrite ci-dessus et l’extension de fichier .list
.
Voici le contenu d’un fichier nommé /etc/apt/sources.list.d/buster-backports.list
:
deb http://deb.debian.org/debian buster-backports main contrib non-free deb-src http://deb.debian.org/debian buster-backports main contrib non-free
Afficher le contenu d’un paquet et rechercher des fichiers
Un outil nommé apt-file
peut être utilisé pour effectuer d’autres opérations dans l’index des paquets, comme afficher le contenu d’un paquet ou repérer un paquet qui contient un fichier donné. Cet outil peut ne pas être installé par défaut sur votre système. Dans ce cas, vous pouvez généralement l’installer en utilisant apt-get
:
# apt-get install apt-file
Après l’installation, vous devrez mettre à jour le cache de paquets utilisé pour apt-file
:
# apt-file update
Cela ne prend généralement que quelques secondes. Une fois que c’est fait, apt-file
est prêt à l’emploi.
Pour afficher le contenu d’un paquet, utilisez le paramètre list
suivi du nom du paquet :
# apt-file list unrar unrar: /usr/bin/unrar-nonfree unrar: /usr/share/doc/unrar/changelog.Debian.gz unrar: /usr/share/doc/unrar/copyright unrar: /usr/share/man/man1/unrar-nonfree.1.gz
Tip
|
Vous pouvez également utiliser |
Vous pouvez rechercher un fichier dans tous les paquets en utilisant le paramètre search
suivi du nom du fichier. Par exemple, si vous souhaitez savoir quel paquet fournit un fichier appelé libSDL2.so
, vous pouvez utiliser :
# apt-file search libSDL2.so libsdl2-dev: /usr/lib/x86_64-linux-gnu/libSDL2.so
La réponse est le paquet libsdl2-dev
, qui fournit le fichier /usr/lib/x86_64-linux-gnu/libSDL2.so
.
La différence entre apt-file search
et dpkg-query
est que apt-file search
prend également en compte les paquets non installés dans l’opération de recherche, alors que dpkg-query
ne peut afficher que les fichiers qui appartiennent à un paquet installé.
Exercices guidés
-
Quelle est la commande pour installer un paquet nommé
paquet.deb
en utilisantdpkg
? -
En utilisant
dpkg-query
, trouvez le paquet qui contient un fichier nommé7zr.1.gz
. -
Pouvez-vous supprimer un paquet nommé
unzip
du système en utilisantdpkg -r unzip
si le paquetfile-roller
en dépend ? Si ce n’est pas le cas, quelle serait la bonne façon de procéder ? -
En utilisant
apt-file
, comment pouvez-vous savoir quel paquet contient le fichierunrar
? -
En utilisant
apt-cache
, quelle est la commande pour afficher les informations relatives au paquetgimp
?
Exercices d’approfondissement
-
Considérez un dépôt avec des paquets source Debian pour la distribution
xenial
, hébergé àhttp://us.archive.ubuntu.com/ubuntu/
et avec des paquets pour le composantuniverse
. Quelle serait la ligne correspondante à ajouter à/etc/apt/sources.list
? -
Lors de la compilation d’un programme, vous vous retrouvez confronté à un message d’erreur qui vous signale que le fichier d’en-tête
zip-io.h
n’est pas présent sur votre système. Comment pouvez-vous savoir quel paquet fournit ce fichier ? -
Comment pouvez-vous passer outre un avertissement de dépendance et supprimer un paquet en utilisant
dpkg
, même s’il y a des paquets qui en dépendent sur le système ? -
Comment pouvez-vous obtenir plus d’informations sur un paquet appelé
midori
en utilisantapt
? -
Avant d’installer ou de mettre à jour des paquets avec
apt
, quelle commande doit être utilisée pour s’assurer que l’index des paquets est à jour ?
Résumé
Dans cette leçon, vous avez appris à :
-
Comment utiliser
dpkg
pour installer et supprimer des paquets. -
Comment afficher la liste des paquets installés ainsi que leur contenu.
-
Comment reconfigurer un paquet installé.
-
La commande
apt
et comment installer, mettre à jour et supprimer des paquets en l’utilisant. -
Comment utiliser
apt-cache
pour rechercher des paquets. -
Comment fonctionne le fichier
/etc/apt/sources.list
. -
Comment utiliser
apt-file
pour afficher le contenu d’un paquet, ou comment savoir quel paquet contient un fichier donné.
Les commandes suivantes ont été abordées :
dpkg -i
-
Installe un seul paquet, ou une liste de paquets séparés par des espaces.
dpkg -r
-
Supprime un paquet, ou une liste de paquets séparés par des espaces.
dpkg -I
-
Inspecte un paquet, en fournissant des détails sur le logiciel qu’il installe et les dépendances nécessaires.
dpkg --get-selections
-
Liste tous les paquets que
dpkg
a installés sur le système. dpkg -L
-
Affiche une liste de tous les fichiers installés par un paquet donné.
dpkg-query
-
Avec un nom de fichier fourni en argument, cette commande affiche le paquet qui a installé le fichier.
dpkg-reconfigure
-
Cette commande va relancer le script post-install d’un paquet afin qu’un administrateur puisse faire des ajustements de configuration à l’installation du paquet.
apt-get update
-
Cette commande va mettre à jour l’index local des paquets pour qu’il corresponde à ce qui est disponible dans les dépôts configurés dans le répertoire
/etc/apt/
. apt-get install
-
Cette commande va télécharger un paquet depuis un dépôt distant et l’installer avec ses dépendances. Elle peut également être utilisée pour installer un paquet Debian qui a déjà été téléchargé.
apt-get remove
-
Cette commande permet de désinstaller le(s) paquet(s) spécifié(s) du système.
apt-cache show
-
Tout comme la commande
dpkg -I
, cette commande peut être utilisée pour afficher des détails sur un paquet donné. apt-cache search
-
Cette commande permet de rechercher un paquet donné dans votre base de données APT locale en cache.
apt-file update
-
Cette commande va mettre à jour le cache de paquets afin que la commande
apt-file
puisse interroger son contenu. apt-file search
-
Cette commande permet de rechercher le paquet qui contient un fichier. Une liste de tous les paquets contenant le motif recherché est renvoyée.
apt-file list
-
Cette commande est utilisée pour afficher le contenu d’un paquet, tout comme la commande
dpkg -L
.
Réponses aux exercices guidés
-
Quelle est la commande pour installer un paquet nommé
paquet.deb
en utilisantdpkg
?Passez le paramètre
-i
àdpkg
:# dpkg -i paquet.deb
-
En utilisant
dpkg-query
, trouvez le paquet qui contient un fichier nommé7zr.1.gz
.Ajoutez le paramètre
-S
àdpkg-query
:# dpkg-query -S 7zr.1.gz
-
Pouvez-vous supprimer un paquet nommé
unzip
du système en utilisantdpkg -r unzip
si le paquetfile-roller
en dépend ? Si ce n’est pas le cas, quelle serait la bonne façon de procéder ?Non.
dpkg
ne résoudra pas les dépendances et ne vous permettra pas de supprimer un paquet si un autre paquet installé en dépend. Dans cet exemple, vous pourriez d’abord supprimerfile-roller
(en supposant que rien n’en dépend) et ensuite supprimerunzip
, ou supprimer les deux en même temps avec :# dpkg -r unzip file-roller
-
En utilisant
apt-file
, comment pouvez-vous savoir quel paquet contient le fichierunrar
?Utilisez le paramètre
search
suivi du chemin (ou du nom de fichier) :# apt-file search /usr/bin/unrar
-
En utilisant
apt-cache
, quelle est la commande pour afficher les informations relatives au paquetgimp
?Utilisez le paramètre
show
suivi du nom du paquet :# apt-cache show gimp
Réponses aux exercices d’approfondissement
-
Considérez un dépôt avec des paquets source Debian pour la distribution
xenial
, hébergé àhttp://us.archive.ubuntu.com/ubuntu/
et avec des paquets pour le composantuniverse
. Quelle serait la ligne correspondante à ajouter à/etc/apt/sources.list
?Les paquets sources sont du type
deb-src
, donc la ligne devrait être :deb-src http://us.archive.ubuntu.com/ubuntu/ xenial universe
Cette ligne pourrait également être ajoutée dans un fichier
.list
dans/etc/apt/sources.list.d/
. Vous êtes libre de choisir le nom, mais il est censé être descriptif, quelque chose commexenial_sources.list
. -
Lors de la compilation d’un programme, vous vous retrouvez confronté à un message d’erreur qui vous signale que le fichier d’en-tête
zip-io.h
n’est pas présent sur votre système. Comment pouvez-vous savoir quel paquet fournit ce fichier ?Utilisez
apt-file search
pour savoir quel paquet contient un fichier qui n’est pas présent sur le système :# apt-file search zzip-io.h
-
Comment pouvez-vous passer outre un avertissement de dépendance et supprimer un paquet en utilisant
dpkg
, même s’il y a des paquets qui en dépendent sur le système ?Le paramètre
--force
peut être utilisé, mais cela ne devrait jamais être fait à moins que vous ne sachiez exactement ce que vous faites, car il y a un grand risque que votre système se retrouve dans un état inconsistant ou "cassé". -
Comment pouvez-vous obtenir plus d’informations sur un paquet appelé
midori
en utilisantapt
?Utilisez
apt-cache show
suivi du nom du paquet :# apt-cache show midori
-
Avant d’installer ou de mettre à jour des paquets avec
apt
, quelle commande doit être utilisée pour s’assurer que l’index des paquets est à jour ?Il faut utiliser
apt-get update
. Cette opération va télécharger les derniers index de paquets depuis les dépôts renseignés dans le fichier/etc/apt/sources.list
ou dans le répertoire/etc/apt/sources.list.d/
.