Chapitre 5. Le système de gestion des packages Debian

Table des matières
1. Généralités
1.1. Qu'est-ce qu'un package ?
1.2. Les trois acteurs de la gestion des packages
2. Dpkg
2.1. Utilité
2.2. Utilisation
3. Apt-get
3.1. Utilité
3.2. Définir les sources des packages
3.3. Utilisation
3.4. Rechercher un package et afficher sa description
4. Dselect
5. Avant d'aller plus loin...
5.1. Compléter l'installation de vim
5.2. Installer un nouveau pager : most
5.3. Désinstaller les packages inutiles

1. Généralités

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

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

1.2. Les trois acteurs de la gestion des packages

Trois programmes s'occupent de la gestion des packages Debian : dpkg, apt-get et dselect :

Tableau 5-1. Les 3 acteurs de la gestion des packages

CoucheProgrammeFonction
supérieureapt-get ou dselectGestion intelligente des packages : sources, versions, dépendances et conflits
inférieuredpkgInstallation et retrait de packages

2. Dpkg

2.1. Utilité

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

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

2.2. Utilisation

Les commandes à savoir sont les suivantes :

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

    
# dpkg -i package1_0.1_i386.deb package2_0.2_i386.deb
    
  • Désinstalle le package package1 mais ne supprime pas ses fichiers de configuration :

    
# dpkg -r package1
    
  • Désinstalle le package package1 et supprime ses fichiers de configuration :

    
# dpkg -r --purge package1
    
  • Reconfigure le package package1 qui est déjà installé :

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

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

    
% dpkg -L vim
    
  • Affiche la liste des packages 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. Apt-get

3.1. Utilité

Apt-get est la couche qui apporte une certaine intelligence et une grande facilité d'utilisation au système de gestion des packages Debian. Avec apt-get, on définit les sources des packages dans un fichier de configuration et il gère l'installation et le retrait des packages en tenant compte des dépendances ainsi que le téléchargement des packages s'ils sont sur une source réseau.

Apt-get est donc utilisé pour installer et retirer les packages inclus dans la distribution ainsi que des packages qui peuvent être inclus dans les sources.

3.2. Définir les sources des packages

3.2.1. La théorie

Les sources des packages 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 packages binaires ;

  • deb-src pour définir une source de packages 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.

3.2.2. Méthode netinstall

Le fichier /etc/apt/sources.list doit contenir :


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

Note

Vous pouvez remplacer ftp.fr.debian.org par le nom DNS d'un autre miroir Debian, notamment si vous avez accès à un miroir plus rapide. Par exemple, pour avoir le miroir Debian de VIA, il faut mettre debian.via.ecp.fr à la place de ftp.fr.debian.org.

3.2.3. Méthode 14 CDs / 2 DVDs

Pour l'instant, le fichier /etc/apt/sources.list doit normalement contenir 14 lignes correspondant aux 14 CDs (ou 2 lignes correspondant aux 2 DVDs). Selon les cas, vous devrez ajouter ou non des lignes au fichier :

  • si l'ordinateur n'a pas de connexion Internet, alors vous n'avez pas besoin de modifier le fichier ;

  • si l'ordinateur a une connexion Internet par modem classique que vous avez réussi à la faire marcher au chapitre Faire marcher la connexion Internet, alors rajoutez la ligne suivante pour bénéficier des mises à jour de sécurité :

    
deb http://security.debian.org/ sarge/updates main contrib non-free
    
  • si l'ordinateur a une connexion Internet de type ADSL ou câble que vous avez réussi à la faire marcher au chapitre Faire marcher la connexion Internet, alors rajoutez les lignes suivantes pour bénéficier des nouvelles releases de Debian et des mises à jour de sécurité :

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

3.3. Utilisation

Les commandes à savoir sont les suivantes :

  • Met à jour la liste des packages 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) :

    
# apt-get update
    
  • Met à jour tous les packages déjà installés à la dernière version disponibles dans les sources :

    
# apt-get upgrade
    
  • Idem que la commande précédente, mais cette commande est optimisée pour les migrations vers une version supérieure de Debian (par exemple passer de la version stable à la version instable) :

    
# apt-get dist-upgrade
    
  • Installe les packages package1 et package2 et tous les packages dont ils dépendent :

    
# apt-get install package1 package2
    
  • Désinstalle le package package1 sans effacer ses fichiers de configuration :

    
# apt-get remove package1
    
  • Idem que la commande précédente mais ses fichiers de configuration sont supprimés :

    
# apt-get remove --purge package1
    
  • Efface du disque dur les packages téléchargés pour être installés (inutile quand la source est un CD ou un fichier du système de fichiers local) :

    
# apt-get clean
    

Pour plus informations ou pour avoir la liste complète des options disponibles, lisez le très complet APT HOWTO ou consultez le manuel d'apt-get :


% man apt-get

3.4. Rechercher un package et afficher sa description

Pour chercher un package dans la base des packages disponibles, utilisez la commande suivante :


% apt-cache search liste_de_mots_clés

Note

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 packages disponibles. Dans les réponses, vous obtenez notamment :


g77 - The GNU Fortran 77 compiler.

Pour afficher les caractéristiques et la description du package package1, utilisez la commande suivante :


% apt-cache show package1

Note

Par exemple :


% apt-cache show g77

Package: g77
Priority: optional
Section: devel
Installed-Size: 40
Maintainer: Debian GCC maintainers <debian-gcc@lists.debian.org>
Architecture: i386
Source: gcc-defaults (0.21)
Version: 2:2.95.4-14
Provides: fortran-compiler
Depends: cpp (>= 2:2.95.4-14), g77-2.95, gcc-2.95
Suggests: g77-2.95-doc
Filename: pool/main/g/gcc-defaults/g77_2.95.4-14_i386.deb
Size: 1390
MD5Sum: cffe224f712694d8ef91eefdb983aec3
Description: The GNU Fortran 77 compiler.
 This is the GNU g77 Fortran compiler, which compiles Fortran 77 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 77 compiler
 for Debian GNU/Linux systems (version 2.95.4 for architecture i386).
Task: fortran-dev

4. Dselect

Dselect est une alternative à apt-get pour la gestion intelligente des packages. Vous vous en êtes déjà servi une fois pendant la procédure d'installation, au chapitre Les packages.

Il a un certain nombre d'avantages par rapport à apt-get, 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. J'ai donc décidé de ne pas expliquer dans ce chapitre l'utilisation de dselect ; vous trouverez une explication détaillée de son utilisation dans l'annexe Utiliser Dselect.

5. Avant d'aller plus loin...

5.1. Compléter l'installation de vim

Maintenant que, quelle que soit la méthode que vous avez utilisée, vous avez accès à l'intégralité des packages, vous allez pouvoir compléter l'installation de vim, en installant le programme par, qui permet de reformatter du texte dans vim :


# apt-get 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.

5.2. Installer un nouveau pager : most

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


# apt-get 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.

5.3. Désinstaller les packages inutiles

Certains packages qui ont été installés par la procédure d'installation ou par dselect ne vous sont en réalité pas utiles, ou en tout cas pas dans l'immédiat (notamment les packages ipchains pour faire du firewalling avec les vieux noyaux de la branche 2.2, lpr qui est un vieux serveur d'impression, nvi qui est une vieux clone de vi...) ; je vous conseille de les enlever :


# apt-get remove --purge ipchains lpr nvi
# rm /etc/printcap