Il y a quelques interfaces pour le système apt
qui facilitent
indubitablement l'obtention d'une liste de paquets qui sont disponibles pour
l'installation ou qui sont déjà installés, de même que pour rechercher la
section dans laquelle se trouve un paquet, sa priorité, sa description, etc.
Mais... notre but ici est d'apprendre comment utiliser le vrai
apt
. Donc comment pouvez-vous retrouver le nom d'un paquet que
vous voulez installer ?
Nous avons un bon nombre de recours pour cette tâche. Nous commencerons avec
apt-cache. Ce programme est utilisé par le système
apt
pour le maintien de sa base de données. Nous jetterons un
bref coup d'oeil à ses applications les plus pratiques.
Supposons, par exemple, que vous voulez vous rappeler les bons vieux jours de
l'Atari 2600. Vous voulez utiliser apt
pour installer un
émulateur Atari, puis télécharger quelques jeux. Vous pouvez faire :
# apt-cache search atari atari-fdisk-cross - Partition editor for Atari (running on non-Atari) circuslinux - The clowns are trying to pop balloons to score points! madbomber - A Kaboom! clone tcs - Character set translator. atari800 - Atari emulator for svgalib/X/curses stella - Atari 2600 Emulator for X windows xmess-x - X binaries for Multi-Emulator Super System
Nous trouvons différents paquets relatifs à ce que nous cherchons, accompagnés d'une brève description. Pour avoir des informations sur un paquet spécifique, je peux alors utiliser :
# apt-cache show stella Package: stella Priority: extra Section: non-free/otherosfs Installed-Size: 830 Maintainer: Tom Lear <tom@trap.mtview.ca.us> Architecture: i386 Version: 1.1-2 Depends: libc6 (>= 2.1), libstdc++2.10, xlib6g (>= 3.3.5-1) Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb Size: 483430 MD5sum: 11b3e86a41a60fa1c4b334dd96c1d4b5 Description: Atari 2600 Emulator for X windows Stella is a portable emulator of the old Atari 2600 video-game console written in C++. You can play most Atari 2600 games with it. The latest news, code and binaries for Stella can be found at: http://www4.ncsu.edu/~bwmott/2600
Depuis cette sortie vous avez plein de détails sur le paquet que vous voulez (ou ne voulez pas) installer, accompagnés de la description complète du paquet. Si le paquet est déjà installé sur votre système et qu'il y a une nouvelle version, vous verrez les informations des deux versions. Par exemple :
[root]@[/] # apt-cache show lilo Package: lilo Priority: important Section: base Installed-Size: 271 Maintainer: Russell Coker <russell@coker.com.au> Architecture: i386 Version: 1:21.7-3 Depends: libc6 (>= 2.2.1-2), debconf (>=0.2.26), logrotate Suggests: lilo-doc Conflicts: manpages (<<1.29-3) Filename: pool/main/l/lilo/lilo_21.7-3_i386.deb Size: 143052 MD5sum: 63fe29b5317fe34ed8ec3ae955f8270e Description: LInux LOader - The Classic OS loader can load Linux and others This Package contains lilo (the installer) and boot-record-images to install Linux, OS/2, DOS and generic Boot Sectors of other OSes. . You can use Lilo to manage your Master Boot Record (with a simple text screen) or call Lilo from other Boot-Loaders to jump-start the Linux kernel. Package: lilo Status: install ok installed Priority: important Section: base Installed-Size: 190 Maintainer: Vincent Renardias <vincent@debian.org> Version: 1:21.4.3-2 Depends: libc6 (>= 2.1.2) Recommends: mbr Suggests: lilo-doc Description: LInux LOader - The Classic OS loader can load Linux and others This Package contains lilo (the installer) and boot-record-images to install Linux, OS/2, DOS and generic Boot Sectors of other OSes. . You can use Lilo to manage your Master Boot Record (with a simple text screen) or call Lilo from other Boot-Loaders to jump-start the Linux kernel.
Notez que le premier de la liste est le paquet disponible et le second est celui déjà installé. Pour plus d'informations générales sur un paquet, vous pouvez utiliser :
# apt-cache showpkg penguin-command Package: penguin-command Versions: 1.4.5-1(/var/lib/apt/lists/download.sourceforge.net_debian_dists_unstable_main_b inary-i386_Packages)(/var/lib/dpkg/status) Reverse Depends: Dependencies: 1.4.5-1 - libc6 (2 2.2.1-2) libpng2 (0 (null)) libsdl-mixer1.1 (2 1.1.0) libsdl1.1 (0 (null)) zlib1g (2 1:1.1.3) Provides: 1.4.5-1 - Reverse Provides:
Et pour rechercher de quels paquets il dépend :
# apt-cache depends penguin-command penguin-command Depends: libc6 Depends: libpng2 Depends: libsdl-mixer1.1 Depends: libsdl1.1 Depends: zlib1g
En résumé, nous avons une série d'armes que nous pouvons utiliser pour rechercher le nom d'un paquet que nous voulons.
Une des solutions pour localiser le nom d'un paquet est de connaître le nom d'un fichier important trouvé dans le paquet. Par exemple, pour trouver le paquet qui fournit un fichier « .h » particulier dont vous avez besoin pour compiler, vous pouvez lancer :
# dpkg -S stdio.h libc6-dev: /usr/include/stdio.h libc6-dev: /usr/include/bits/stdio.h perl: /usr/lib/perl/5.6.0/CORE/nostdio.h
ou :
# dpkg -S /usr/include/stdio.h libc6-dev: /usr/include/stdio.h
Pour trouver le nom de paquets installés sur votre système, ce qui est utile, par exemple, si vous prévoyez de nettoyer votre disque dur, vous pouvez lancer :
# dpkg -l | grep mozilla ii mozilla-browse 0.9.6-7 Mozilla Web Browser
Le problème avec cette commande est qu'elle peut « casser » le nom des paquets. Dans l'exemple ci-dessus, le nom complet du paquet est mozilla-browser. Pour arranger cela, vous pouvez utiliser la variable d'environnement COLUMNS comme ceci :
[kov]@[couve] $ COLUMNS=132 dpkg -l | grep mozilla ii mozilla-browser 0.9.6-7 Mozilla Web Browser - core and browser
ou la description ou une partie de celle-ci comme cela :
# apt-cache search "Mozilla Web Browser" mozilla-browser - Mozilla Web Browser
Vous compilez un programme et, tout à coup : patatras ! Il y a une
erreur parce qu'il faut un fichier .h que vous n'avez pas. Le
programme auto-apt
peut vous sauver de ces scénarios. Il vous
demande d'installer des paquets nécessaires, en stoppant le processus, et en
continuant une fois que le paquet est installé.
Ce que vous avez simplement à faire est de lancer :
# auto-apt run commande
Où « commande » est la commande à exécuter qui devrait nécessiter des fichiers qui ne sont pas disponibles. Par exemple :
# auto-apt run ./configure
Il vous demandera d'installer les paquets nécessaires et appellera
apt-get
automatiquement. Si vous êtes sous X, une interface
graphique remplacera l'interface texte par défaut.
Pour être efficace, auto-apt conserve des bases de données qui doivent être à jour. C'est fait en appelant les commandes auto-apt update, auto-apt updatedb et auto-apt update-locale.
Si vous voulez installer un paquet et que vous ne parvenez pas à découvrir quel
est son nom en cherchant avec apt-cache
, mais que vous connaissez
le nom du programme lui-même, ou quelque autre fichier appartenant à ce paquet,
vous pouvez alors utiliser apt-file
pour retrouver le nom de ce
paquet. Ceci est fait comme suit :
$ apt-file search nomdufichier
Il fonctionne comme dpkg -S
, mais il vous affichera aussi les
paquets non installés qui contiennent ce fichier. Il peut aussi être utilisé
pour trouver quel paquet contient les fichier d'en-tête manquant à la
compilation d'un programme, bien que auto-apt
soit une meilleure
solution pour résoudre ce problème, voir Comment
installer des paquets « à la demande » ?, Section 5.3.
Vous pouvez lister le contenu d'un paquet en exécutant :
$ apt-file list nomdupaquet
apt-file
récupère une base de données des fichiers contenus dans
tous les paquets, comme le fait auto-apt
et elle doit être à jour.
C'est fait en exécutant :
# apt-file update
Par défaut, apt-file
et auto-apt
utilisent la même
base de données, voir Comment installer des paquets
« à la demande » ?, Section 5.3.
Tous les paquets installent dans leur répertoire de documentation un fichier appelé changelog.Debian.gz qui contient la liste des changements faits sur le paquet depuis la dernière version. Vous pouvez lire ces fichiers à l'aide de zless, par exemple ; mais ce n'est pas quelque chose de très simple, après une mise à niveau du système complète, de consulter les changelog de tous les paquets mis à niveau.
Il y a une solution pour automatiser cette tâche au moyen d'un outil appelé
apt-listchanges
. Pour commencer, vous avez besoin d'installer le
paquet apt-listchanges
. Pendant l'installation du paquet, Debconf
le configurera. Certaines questions peuvent ne pas vous être affichées car
cela dépend de la priorité fixée dans Debconf. Répondez aux questions comme
vous le voulez.
La première question vous demande si vous souhaitez
qu'apt-listchanges
affiche les changements. Vous pouvez vous les
faire envoyer par courriel, ce qui est une bonne idée pour les mises à niveau
automatiques ou vous pouvez simplement demander de les afficher à l'aide d'un
outil de défilement tel que less
, vous pourrez donc inspecter les
changements avant de permettre la poursuite de la mise à niveau. Si vous ne
voulez pas qu'apt-listchanges
soit lancé automatiquement lors des
mises à niveau, vous pouvez répondre none.
Après que apt-listchanges a été installé, aussitôt que des paquets sont
téléchargés (ou récupérés sur un cédérom ou un disque monté) par
apt
, il affichera la liste des changements faits sur ces paquets
avant de les installer.
APT HOWTO
1.8.10 - novembre 2004kov@debian.org
leonptitlouis@ifrance.com