Chapitre 18. Le système de gestion des paquets Debian

1. Généralités
2. Dpkg
3. aptitude
4. Dselect
5. Avant d'aller plus loin

1. Généralités

1.1. Qu'est-ce qu'un paquet ?

Ceci avait été abordé dans la première partie de cette formation à la section Qu'est-ce qu'un paquet ?.

1.2. Les trois acteurs de la gestion des paquets

Trois programmes s'occupent de la gestion des paquets Debian : dpkg, aptitude et dselect :

Tableau 18.1. Les 3 acteurs de la gestion des paquets

Couche Programme Fonction
supérieure aptitude ou dselect Gestion intelligente des paquets : sources, versions, dépendances et conflits
inférieure dpkg Installation et retrait de paquets

2. Dpkg

2.1. Utilité

Il faut éviter de l'utiliser en temps normal pour installer et désinstaller des paquets, puisqu'il ne gère pas les dépendances entre paquets.

Par contre, c'est souvent le seul moyen d'installer des paquets qui ne sont pas présents dans la distribution. Il faut alors télécharger les fichiers correspondant aux paquets et les installer avec la commande dpkg.

2.2. Utilisation

Les commandes à connaître sont les suivantes :

  • Installer les paquets paquet1 et paquet2 (comme dpkg ne gère pas les dépendances, il faut installer en même temps les paquets qui dépendent l'un de l'autre ; si une ancienne version du paquet est déjà installée, elle sera remplacée) :

    # dpkg -i paquet1_0.1_i386.deb paquet2_0.2_i386.deb
    
  • Désinstaller le paquet paquet1 mais ne supprime pas ses fichiers de configuration :

    # dpkg -r paquet1
    
  • Désinstaller le paquet paquet1 et supprime ses fichiers de configuration :

    # dpkg -r --purge paquet1
    
  • Reconfigurer le paquet paquet1 déjà installé :

    # dpkg-reconfigure paquet1
    
  • Indiquer le nom du paquet qui a installé le fichier /usr/bin/vim (la réponse est facile, c'est le paquet vim !) :

    % dpkg -S /usr/bin/vim
    
  • Afficher la liste des fichiers installés par le paquet vim :

    % dpkg -L vim
    
  • Afficher la liste des paquets installés :

    % dpkg -l
    

Pour plus d'informations ou pour avoir la liste complète des options disponibles, consultez le manuel de dpkg :

% man dpkg

3. aptitude

3.1. Utilité

aptitude est la couche qui apporte une certaine intelligence et une grande facilité d'utilisation au système de gestion des paquets Debian. Pour cela, on définit les sources des paquets dans un fichier de configuration. aptitude gère ensuite l'installation et le retrait des paquets, en tenant compte de leurs dépendances, et s'occupe d'aller chercher les paquets sur vos cd ou dvd, ou de les télécharger s'ils sont sur une source réseau.

aptitude est donc utilisé pour installer et retirer les paquets.

3.2. Définir les sources des paquets

La théorie

Les sources des paquets sont définies dans le fichier de configuration /etc/apt/sources.list. Une source doit tenir sur une seule ligne (pas de retour à la ligne au milieu de la définition d'une source) et commencer par un des deux mots clés suivants :

  • deb pour définir une source de paquets binaires ;

  • deb-src pour définir une source de paquets sources (cela n'intéressera que les développeurs qui veulent examiner le code source des programmes).

Pour ajouter ou retirer une source réseau ou fichier, il faut éditer le fichier « à la main ».

Pour ajouter comme source un cd ou dvd Debian, il faut exécuter la commande suivante :

# apt-cdrom add

Pour enlever un cd ou dvd Debian de la liste des sources, il faut éditer le fichier et supprimer la ligne correspondant au cd ou au dvd.

Vous trouverez tous les détails sur la syntaxe dans man sources.list.

Ajouter les sources de contribution

Si vous disposiez déja d'une connexion à Internet, vous avez déja dû définir les sources de paquets. Mais il ne s'agit que des sources officielles de Debian. Le projet Debian maintient également des dépots pour les paquets qui ne respectent pas strictement les principes du logiciel libre selon Debian. Il s'agit des dépôts contrib, contenant des logiciels libres mais basés sur d'autres non libres (c'est souvent le cas des programmes écrits en Java) et non-free, contenant des logiciels non libres.

Si vous n'avez pas défini les sources de paquets lors de l'installation, ou si vous souhaitez bénéficier de ces paquets non libres, éditez votre fichier /etc/apt/sources.list. Pour définir les dépots utilisés, ajoutez les lignes de définition suivantes. Pour utiliser également les dépots non-libres, rajouter à la fin de chaque dépôt réseau le mot non-free. Il doit ressembler à ceci (les dépôts utilisés peuvent être différents) :

deb http://ftp.fr.debian.org/debian/ squeeze main [contrib] [non-free]
deb http://security.debian.org/ squeeze/updates main [contrib] [non-free]
...

3.3. Utilisation

Les commandes à savoir sont les suivantes :

  • Met à jour la liste des paquets disponibles (pour les sources réseau ou fichier, il doit aller voir si elles ont été mises à jour, pour les sources cd, il ne fait rien de particulier) :

    # aptitude update
    
  • Met à jour tous les paquets déjà installés à la dernière version disponibles dans les sources, sauf ceux qui nécessitent d'en désinstaller d'autres :

    # aptitude safe-upgrade
    
  • Idem que la commande précédente, mais cette commande effectue également des désinstallations des dépendances qui ont pu changer (par exemple lors d'un passage de la version stable à la version instable de Debian) :

    # aptitude full-upgrade
    
  • Installe les paquets paquet1 et paquet2 et tous les paquets dont ils dépendent :

    # aptitude install paquet1 paquet2
    
  • Désinstalle le paquet paquet1 sans effacer ses fichiers de configuration :

    # aptitude remove paquet1
    
  • Idem que la commande précédente mais ses fichiers de configuration sont supprimés :

    # aptitude purge paquet1
    
  • Efface du disque dur les paquets téléchargés pour être installés (inutile quand la source est un cd ou un fichier du système de fichiers local) :

    # aptitude clean
    

Pour plus d'informations ou pour avoir la liste complète des options disponibles, consultez le manuel d'aptitude :

% man aptitude

3.4. Rechercher un paquet et afficher sa description

Pour chercher un paquet dont le nom ou la description contient certains mots, utilisez la commande suivante :

% apt-cache search liste_de_mots_clés

Par exemple, pour chercher un compilateur Fortran, tapez :

% apt-cache search fortran compiler

Il recherche alors les termes fortran et compiler dans la description de tous les paquets disponibles. Dans les réponses, vous obtenez notamment :

gfortran - The GNU Fortran 95 compiler.

Pour afficher les caractéristiques et la description du paquet paquet1, utilisez la commande suivante :

% aptitude show paquet1

Par exemple :

% aptitude show gfortran

Paquet : gfortran
État: non installé
Version : 4:4.3.1-2
Priorité : optionnel
Section : devel
Responsable : Debian GCC Maintainers <debian-gcc@lists.debian.org>
Taille décompressée : 41,0k
Dépend: cpp (>= 4:4.3.1-2), gcc (>= 4:4.3.1-2), gfortran-4.3 (>= 4.3.1-1)
Suggère: gfortran-multilib, gfortran-doc
Fournit: fortran-compiler
 Description : The GNU Fortran 95 compiler
 This is the GNU Fortran 95 compiler, which compiles Fortran 95 on platforms
 supported by the gcc compiler. It uses the gcc backend to generate optimized
 code.

 This is a dependency package providing the default GNU Fortran 95 compiler.
 
Étiquettes: devel::compiler, devel::lang:fortran, role::dummy, suite::gnu

4. Dselect

Dselect est une alternative à aptitude pour la gestion intelligente des paquets.

Il a un certain nombre d'avantages par rapport à aptitude, mais il a aussi de nombreux inconvénients, notamment la complexité d'utilisation pour un débutant ainsi que la difficulté de résoudre les problèmes de dépendance.

5. Avant d'aller plus loin

Mettre à jour son système

Des problèmes de sécurité sont régulièrement découverts dans les logiciels, et sont rapidement corrigés. Il est donc possible que des mises à jour importantes soient disponibles. Pour les installer, tapez :

# aptitude update
# aptitude safe-upgrade

Configurer… l'outil de configuration Debian !

Debconf est l'outil de configuration des paquets Debian. Quand vous installerez de nouveaux logiciels qui nécessitent une configuration, il vous posera quelques questions. Par défaut, Debconf est réglé pour un débutant qui ne souhaite pas se poser trop de questions. Nous allons donc le régler de façon un peu plus curieuse :

# dpkg-reconfigure debconf

Il vous demande alors quelle interface vous souhaitez utiliser : conservez l'interface Dialogue. Quant à la priorité des questions, choisissez élevée.

Compléter l'installation de Vim

Maintenant que, vous avez accès à l'intégralité des paquets, vous allez pouvoir compléter l'installation de Vim, en installant le programme par, qui permet de reformater du texte dans Vim :

# aptitude install par

Ce programme apporte deux nouvelles fonctions à vim quand vous êtes en mode commande :

  • la touche # coupe les lignes d'un paragraphe à 72 caractères (on dit wrapper), ce qui est la norme pour les documents texte que vous envoyez (mail, post dans les news...) ;

  • la touche @ fait la même chose que # mais en justifiant le texte.

Installer un nouveau pager : most

Le pager est un programme qui sert à afficher du texte. Vous avez le choix entre plusieurs programmes, grâce à un mécanisme d'alternatives. Je vous propose d'installer et d'utiliser most, un pager qui permet entre autres de colorer les pages de manuel.

# aptitude install most
# update-alternatives --config pager

La seconde commande vous demande de choisir le pager à utiliser. Répondez en donnant le numéro qui correspond à most. Maintenant, c'est ce programme qui sera utilisé pour afficher les manuels.