Les outils apt directs

apt-cache

Syntaxe générale :

apt-cache options commande lePaquetOuLeMotif

show
On va utiliser cette option pour obtenir une description du contenu du paquet, ainsi que des renseignements supplémentaires sur sa taille, le mainteneur, les dépendances. . .
Syntaxe : apt-cache show lePaquet
Un exemple ? Voir la figure 1
     [ 2 0 : 3 4 ]jm@espinasse: linuxtarn-542> apt-cache show cdrecord
     Package: cdrecord
     Priority : optional
     Section : otherosfs
     Installed-Size : 1184
     Maintainer: Joerg Jaspert <joerg@debian.org>
     Architecture : i386
     Source: cdrtools
     Version: 4:2.0+a34-2
     Replaces: cdrtools-doc
     Depends: libc6 (>= 2 . 3 . 2 .ds1-4), debconf , makedev (>= 2.3.1 -24)
     Recommends: mkisofs
     Suggests: xcdroast , cdrtools-doc
     Conflicts : xcdroast (<< 0.98+0alpha14-5)
     Filename: pool/main/c/cdrtools/cdrecord_2.0+a34-2_i386.deb
     Size : 562318
     MD5sum: c71b2e6e2241035eca0479f985efcc1e
     Description : command l i n e CD writing tool
      cdrecord allows you to create CDs on a CD recorder .
      It supports writing data , audio , mixed, multi-session , and CD+
      discs , on just about every type of CD recorder out there .
     

FIG. 1: apt-cache show

search
On va utiliser search pour rechercher un paquet selon un ou plusieurs motifs. On peut préciser —names-only afin que la recherche ne porte que sur le nom des paquets
Syntaxe : apt-cache search --names-only leMotif
Un exemple ? Voir la figure 2
     [ 1 8 : 2 5 ]jm@espinasse: linuxtarn-541> apt-cache search record --names-only
     quickrecord-applet - GNOME applet providing one-c l i c k recording
     cdrecord-dev - The l i b s c h i l y SCSI user l e v e l transport library
     cdrecord - command l i n e CD writing tool
     krecord - KDE sound recorder
     ksimus-datarecorder - KSimus datarecorder package
     libdbix-recordset-perl - Perl extension for DBI recordsets
     records-common - Save and index notes in Emacs environment
     records-gnuemacs - Save and index notes in Emacs environment
     records-xemacs - Save and index notes in Emacs environment
     sound-recorder - Direct-to-disk recording and play-back programs.
     srecord - Manipulate EPROM load f i l e s
     uprecords-cgi - A CGI script to show the world your highest uptimes
     

FIG. 2: apt-cache search

depends
Va donner les les paquets dont dépend celui qui fait l’objet de l’interrogation. Plus des renseignements complémentaires sur les paquets liés (suggérés et recommandés) et les conflits.
Syntaxe : apt-cache depends lePaquet
Un exemple ? Voir la figure 3
     [ 2 0 : 4 7 ]jm@espinasse: linuxtarn-545> apt-cache depends zope
     zope
     Dépend: python2.2
     Dépend: debconf
     Dépend: python2.2-xml
     Dépend: adduser
     Dépend: zopectl
     Dépend: dpkg
     Dépend: libc6
     Suggère: python-unit
     Suggère: zope-book
     Suggère: zope-devguide
     Est en c o n f l i t avec: <zope-httpd>
     Est en c o n f l i t avec: <zope-siteaccess>
     Est en c o n f l i t avec: zope-zieve
     Est en c o n f l i t avec: zope-cmfcore
     Est en c o n f l i t avec: zope-znavigator
     Est en c o n f l i t avec: <zope-ztutils>
     Est en c o n f l i t avec: zope-zcvsmixin
     Remplace: <zope-httpd>
     Remplace: <zope-siteaccess>
         zope
     Remplace: <zope-pagetemplates>
         zope
     Remplace: <zope-ztutils>
         zope
     

FIG. 3: apt-cache depends

Documentation :man apt-cache

apt-get

Le gros truc. . .
Même syntaxe générale qu’apt-cache.

Commençons par les options :

—simulate
Ou -s, ne fait qu’indiquer que ce qui devrait être effectué. Bien pratique pour simuler des suppressions de paquets et voir ce qui va être réellement supprimé.
—download-only
Ou -d, ne fait que le téléchargement dans /var/cache/apt/archives
—show-upgraded
Ou -u, affiche les paquets mis à jour, rajoutés ou supprimés.
—purge
Lors d’une suppression de paquet, supprime même les fichiers de configuration.

Puis les commandes :

update
Permet de synchroniser les bases locales d’apt (en fait des fichiers gzippés) avec ceux du serveur distant (celui du sources.list)
Syntaxe : apt-get update
Un exemple ? Voir la figure 4
     root@espinasse:/home/jm# apt-get update
     Réception de: 1 ftp://ftp . f r .debian.org testing/main Packages [3124kB]
     Réception de: 2 ftp://ftp . f r .debian.org testing/main Release [81B]
     Réception de: 3 ftp://ftp . f r .debian.org testing/contrib Packages [56 ,6kB]
     Réception de: 4 ftp://ftp . f r .debian.org testing/contrib Release [84B]
     Réception de: 5 ftp://ftp . f r .debian.org testing/non-free Packages [58 ,4kB]
     Réception de: 6 ftp://ftp . f r .debian.org testing/non-free Release [85B]
     3087ko réceptionnés en 12m54s (3985o/s)
     Lecture des l i s t e s de paquets . . . Fait
     

FIG. 4: apt-get update

dist-upgrade
Après l’update, le dist-upgrade va calculer la mise à jour, mettre à jour les paquets existants, en ajouter et/ou en enlever, contrairement à la commande upgrade qui ne touche pas aux paquets non installés, pouvant ainsi ne pas mettre à jour certains paquets.
C’est pourquoi je fais toujours une simulation avant le dist-upgrade
Syntaxe : apt-get [options] dist-upgrade
Exemple : apt-get --simulate --show-upgraded dist-upgrade
Un autre exemple ? Voir la figure 5
     root@espinasse:/home/jm# apt-get --simulate --show-upgraded dist-upgrade
     Lecture des l i s t e s de paquets . . . Fait
     Construction de l arbre des dépendances . . . Fait
     Calcul de la mise à jour . . . Fait
     Les paquets suivants ont été conservés :
       swig1.3
     Les paquets suivants seront mis à jour :
         libmng1 po-debconf
     2 mis à jour , 0 nouvellement i n s t a l l é s , 0 à enlever et 1 non mis à jour .
     Inst libmng1 [1.0.5 -1] (1.0.8 -1 Debian: testing)
     Inst po-debconf [ 0 . 8 . 1 3 ] (0.8.14 Debian: testing)
     Conf libmng1 (1.0.8 -1 Debian: testing)
     Conf po-debconf (0.8.14 Debian: testing)
     

FIG. 5: apt-get dist-upgrade

install
Installation de paquets, avec gestion de dépendance.
Syntaxe :
apt-get install paquet1 [paquet2...paquetN]
Un exemple ? Voir la figure 6
     root@espinasse:/home/jm# apt-get i n s t a l l libmng1 po-debconf
     Lecture des l i s t e s de paquets . . . Fait
     Construction de l arbre des dépendances . . . Fait
     Les paquets suivants seront mis à jour :
       libmng1 po-debconf
       2 mis à jour , 0 nouvellement i n s t a l l é s , 0 à enlever et 1 non mis à jour .
       I l est nécessaire de prendre 238ko dans l e s archives .
       Après dépaquetage , 69 ,6ko despace disque supplémentaires seront u t i l i s é s .
       Réception de: 1 ftp://ftp . f r .debian.org testing/main libmng1 1.0.8 -1
       [171kB]
       Réception de: 2 ftp://ftp . f r .debian.org testing/main po-debconf 0.8.14
       [66 ,7kB]
       238ko réceptionnés en 1m25s (2786o/s)
       Lecture des f i c h i e r s changelog . . . Terminé
       (Lecture de la base de données . . . 68637 f i c h i e r s et r é e r t o i r e s déjà i n s t a l l é s . )
       Préparation du remplacement de libmng1 1.0.5 -1 (en u t i l i s a n t . . . /libmng1_1.0.8 -1_i386.deb) . . .
       Dépaquetage de la mise  jour de libmng1 . . .
       Préparation du remplacement de po-debconf 0.8.13 (en u t i l i s a n t . . . /po-debconf_0.8.14_all.deb) . . .
       Dépaquetage de la mise  jour de po-debconf . . .
       Paramétrage de libmng1 (1.0.8 -1) . . .
     

FIG. 6: apt-get install

J’ai effectué la mise à jour des paquets liés à l’update à la main. On y voit l’intervention d’apt-listchanges avec la lecture des Changelog (voir )

remove
Suppression de paquets.
Syntaxe : apt-get remove lePaquet]
Un exemple ? Voir la figure 7
     root@espinasse:/home/jm# apt-get --purge remove cdrdao
     Lecture des l i s t e s de paquets . . . Fait
     Construction de l arbre des dépendances . . . Fait
     Les paquets suivants seront ENLEVÉS:
       cdrdao*
     0 mis à jour , 0 nouvellement i n s t a l l é s , 1 à enlever et 1 non mis à jour .
     I l est nécessaire de prendre 0o dans l e s archives .
     Après dépaquetage , 1143ko despace disque seront l i b é r é s .
     Souhaitez-vous continuer? [O/n]
     (Lecture de la base de données . . . 68634 f i c h i e r s et répertoires déjà i n s t a l l é s . )
     Suppression de cdrdao . . .
     

FIG. 7: apt-get remove

autoclean
Nettoyage du cache d’apt (/var/cache/apt/archives) des versions de paquets rendues obsoletes après un update.
Syntaxe :
apt-get autoclean
     root@espinasse:/home/jm# apt-get autoclean
     Lecture des l i s t e s de paquets . . . Fait
     Construction de l arbre des dépendances . . . Fait
     Del l i b p e r l 5 .6 5.6.1 -8.3 [374kB]
     Del libnet-server-perl 0.85-3 [127kB]
     Del libnspr4 2:1.0.0 -0.woody.1 [107kB]
     Del po-debconf 0.8.13 [65 ,1kB]
     Del unison 2.9.1 -1 [620kB]
     Del libmng1 1.0.5 -1 [149kB]
     
clean
Nettoyage total du cache d’apt. Tous les paquets précédemment téléchargés sont supprimés.
Syntaxe : apt-get clean

Documentation :man apt-get

dpkg

Installation, suppression, informations sur les paquets installés.

—install
Ou -i, installe un paquet, sans installation de dépendances éventuelles. Si il y en a, l’installation échoue. S’utilise pour installer un paquet solitaire, déniché pour un logiciel ne faisant pas partie d’un dépot apt (Opera par exemple, et ce n’est pas de la pub, je ne l’utilise pas, Firefox est mon ami). Attention à la syntaxe, il faut le nom du fichier, pas du paquet.
Syntaxe : dpkg --install lePaquet.deb
—remove
Ou -r, supprime un paquet sans les fichiers de configuration
Syntaxe : dpkg --remove lePaquet
—purge
Ou -P, supprime un paquet avec ses fichiers de configuration
Syntaxe : dpkg --purge lePaquet
—list
Ou -l, liste tous les paquets installés si il n’y a pas d’argument, où ceux qui correspondent au motif donné en argument si il y en a un. Dans ce dernier cas tous les paquets correspondant au motif sont listés.
Syntaxe :
dpkg --list leMotif
Un exemple ? Voir la figure 8
     [ 1 1 : 3 1 ]jm@espinasse: linuxtarn-603> dpkg -l tetex*
     Souhait=inconnU/I n s t a l l é/suppRimé/Purgé/H=à garder
     | État=Non/I n s t a l l é/f i c h i e r-Config/dépaqUeté/échec-conFig/H=semi-i n s t a l l é
     |/ Err?=(aucune)/H=à garder/besoin Réinstallation/X=l e s deux (État ,Err: majuscule=mauvais)
     | | / Nom            Version        Description
     +++-==============-==============-============================================
     i i  tetex-base     2.0.2b-6       Basic library f i l e s of teTeX
     i i  tetex-bin      2.0.2 -22       The teTeX binary f i l e s
     un  tetex-dev      <néant>        (aucune description n est disponible)
     i i  tetex-doc      2.0.2b-6       The documentation component of the Debian te
     pn  tetex-eurosym  <néant>        (aucune description n est disponible)
     i i  tetex-extra    2.0.2b-6       Additional library f i l e s of teTeX
     un  tetex-french   <néant>        (aucune description n est disponible)
     un  tetex-l i b      <néant>        (aucune description n est disponible)
     un  tetex-nonfree  <néant>        (aucune description n est disponible)
     pn  tetex-src      <néant>        (aucune description n est disponible)
                     
     

FIG. 8: dpkg -l

mais. . .


     [ 1 1 : 3 1 ]jm@espinasse: linuxtarn-603> dpkg -l | grep tetex
     i i  tetex-base     2.0.2b-6       Basic library f i l e s of teTeX
     i i  tetex-bin      2.0.2 -22       The teTeX binary f i l e s
     i i  tetex-doc      2.0.2b-6       The documentation component of the Debian te
     i i  tetex-extra    2.0.2b-6       Additional library f i l e s of teTeX
                     
     

FIG. 9: dpkg -l

—listfiles
Ou -L, affiche la liste des fichiers d’un paquet.
Syntaxe :
dpkg -L lePaquet
Un exemple ? Voir la figure 10
     [ 1 1 : 3 8 ]jm@espinasse: linuxtarn-605> dpkg -L wmtime
     /.
     /usr
     /usr/bin
     /usr/bin/wmtime
     /usr/share
     /usr/share/doc
     /usr/share/doc/wmtime
     /usr/share/doc/wmtime/copyright
     /usr/share/doc/wmtime/examples
     /usr/share/doc/wmtime/examples/wmtimerc
     /usr/share/doc/wmtime/changelog.gz
     /usr/share/doc/wmtime/changelog.Debian.gz
     /usr/share/man
     /usr/share/man/man1
     /usr/share/man/man1/wmtime. 1 .gz
     /usr/l i b
     /usr/l i b/menu
     /usr/l i b/menu/wmtime
     

FIG. 10: dpkg -L

—search
Ou -S, recherche la provenance d’un fichier.
Syntaxe : dpkg -S leFichier
Un exemple ? Voir la figure 11
     [ 1 1 : 3 8 ]jm@espinasse: linuxtarn-605> dpkg -S l i s t i n g s .sty
     tetex-extra : /usr/share/texmf/tex/latex/l i s t i n g s/l i s t i n g s .sty
     

FIG. 11: dpkg -S

—get-selections
Renvoie un état de la sélection des paquets sur la sortie standard. Ce qui peut s’utiliser pour fixer une préférence concernant un paquet, qu’on ne veut pas mettre à jour par exemple, ou pour établir une liste de paquets installables, pour une autre machine, avec dselect-upgrade.
Syntaxe : dpkg --get-selections
Exemple : dpkg --get-selections > selections.txt
Un autre exemple ? Voir la figure 12
     grep -C 2 kernel-source /home/jm/debian/s e l e c t i o n s
     kernel-package               i n s t a l l
     kernel-patch-s c r i p t s         i n s t a l l
     kernel-source -2.4.18         hold
     klogd                         i n s t a l l
     latex2html                   i n s t a l l
     

FIG. 12: dpkg —get-selections

On y remarque que je ne souhaite pas la mise à jour de kernel-source-2.4.18

—set-selections
Permet de déterminer les sélections de paquets en utilisant un fichier comme celui qui a été construit précédemment.
Syntaxe : dpkg --set-selections < maSelection
Ce paramétrage peut être utilisé par apt-get pour faire une mise à jour, avec : apt-get dselect-upgrade

Documentation :

man dpkg  
man dpkg-query

dselect

Pour mémoire, car je ne l’utilise pas. Quitte à utiliser une interface graphique je choisirais plutôt aptitude.