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. Répondez aux questions comme vous le voulez.
L'option « Est-ce que apt-listchanges doit être automatiquement lancé par apt ? » est très utile parce qu'il montre une liste des changements faits à chaque paquet qui est installé par apt durant une mise à niveau et vous laisse les examiner avant de continuer. L'option " Est-ce que apt-listchanges demande une confirmation après l'affichage des changements ? » est utile parce qu'elle vous demande si vous voulez continuer l'installation après avoir lu la liste des changements. Si vous dites que vous ne voulez pas continuer apt-listchanges retournera une erreur et apt annulera l'installation.
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.7 - septembre 2004kov@debian.orgleonptitlouis@ifrance.com