La gestion des paquets

Voir aussi :

Notion de paquet

Dans toutes les distributions modernes, il y a un système de paquets. Mais d'abord, qu'est ce que c'est? En gros, un paquet, c'est un programme prêt à s'installer et surtout à se désinstaller proprement sur votre système. La définition de « proprement » est régie par des règles très strictes sous Debian : la « Debian policy ». Ne pas respecter ces règles est une bonne façon de se faire éliminer de l'archive officielle. Pour les simples utilisateurs, c'est la garantie que tout devrait bien se passer.

Notons d'emblée que son système de paquets est l'un des points les plus forts de Debian, et qu'il constitue à lui seul une bonne raison de prendre Debian au lieu d'une autre distribution.

Dans les faits, il existe plusieurs types de paquets Debian.

Les paquets binaires

Ils contiennent des exécutables, des fichiers de configuration, de la documentation sous diverses formes, les informations de copyright, de licence... Ces fichiers ont une extension .deb et sont essentiellement manipulés par l'utilitaire dpkg. Ces fichiers sont obtenus par compilation du « paquet source » correspondant.

Un paquet binaire s'installe.

Les paquets sources

Ils contiennent des informations d'auto-description, les sources des applications ou librairies qui seront installés par le(s) paquet(s) binaire(s) générés par compilation du paquet source. Les paquets sources sont essentiellement manipulés par l'utilitaire dpkg-source.

Un paquet source se recompile.

Les paquets virtuels

Il existe même des paquets ne contenant rien du tout. On les appelle des méta-paquets. Ils sont là pour grouper les paquets par sujet. Ainsi, il existe un paquet task-games , qui dépend d'une sélection de jeux. Comme ça, pour les installer, pas besoin de se souvenir du nom de chacun, il suffit d'installer le méta-paquet pour voir s'installer tous les jeux dont il dépend.

Maintenant, étudions ce qu'il y a dans un paquet. En gros, il contient deux types d'informations : le programme à installer, et toutes les informations qui vont permettre de l'installer.

Si vous êtes du genre à ne pas me croire sur parole, l'extension classique des paquets Debian est bien sûr .deb, et si vous utilisez le programme mc , vous pouvez voir le contenu de l'un d'entre eux en appuyant sur entrée après l'avoir sélectionné. Le répertoire CONTENTS contient le programme lui même, et tout le reste est constitué des informations sur le paquet. Faites F3 sur les différents fichiers pour voir ce qu'il y a dedans (et F10 pour sortir du visualiseur après). Bonne lecture.

Architecture

Debian est disponible pour différents processeurs (Intel et compatible, Sparc, PowerPC...) La liste s'agrandit d'année en année, et un programme compilé pour un processeur ne peut pas fonctionner sur un autre. Il est donc important de savoir pour quelle famille de processeur le paquet est prévu. C'est ce que l'on appelle l'« architecture »

fr/FixMe Quelles sont les architectures actuellement supportées ? (cf SupportedArchitectures)

Dépendances

D'autres informations très importantes sont les dépendances. On a vu que certains programmes ont besoin de certaines bibliothèques pour tourner. C'est une dépendance.

Mais il arrive aussi que deux paquets ne puissent pas fonctionner tous les deux s'ils sont tous les deux installés. C'est un cas particulier de dépendance, un conflit (dépendance Conflicts).

Par exemple, il y a différentes façons de discuter avec l'imprimante. Il y a donc différents programmes qui font ce boulot (lpr et lprng, par exemple). Mais il est clair qu'on va pouvoir utiliser un seul de ces programmes à un instant donné, sinon, ils parleraient tous les deux en même temps à l'imprimante qui serait sans doute un peu déboussolée.

Il y a encore d'autres types de dépendance, mais il n'est pas nécessaire de les connaître pour l'instant. Pour en savoir plus :

Debian Policy Declaring relationships between packages http://www.debian.org/doc/debian-policy/

Bien, maintenant que nous savons un peu mieux ce que c'est qu'un paquet, voyons le minimum à savoir pour les utiliser. Tout d'abord, seul l'utilisateur root a le droit de changer les paquets installés sur le système. Ensuite, il nous faut un programme pour installer et désinstaller les paquets. Debian, dans sa grande mansuétude, nous fournit trois outils (au moins) pour le faire.

dpkg : C'est en fait le seul habilité à faire le boulot effectif de (dés)installation. Les autres ne sont que des sur-couches pour rendre son usage plus agréable. Un

 dpkg ---help 

est indispensable pour savoir s'en servir. Sachez juste qu'à moins de préciser une option du type ---force-*, il ne vous laissera pas faire de bêtise trop grave. Mais prudence quand même, c'est un outil puissant.

dselect : C'est une interface graphique (en mode caractère) très pratique quand on sait s'en servir. Dans le cas contraire, certains vont jusqu'à dire que c'est un programme pour vénusien halluciné. De plus, il tend à se faire de plus en plus rare, car il est remplacé par l'autre solution :

apt-get (dans le paquet apt) : il est magique. Il sait aller chercher sur le web ou les CD les paquets dont vous avez besoin, et les installer (en demandant à dpkg, bien sûr).

aptitude est une interface graphique sur apt-get

Ok. Nous avons fini ce tour d'horizon à la fois suffisamment long pour avoir fait fuir certains lecteurs et trop court pour vous apprendre à gérer les paquets. Mais vous apprendrez cela dans la documentation adéquate : les éternels

Place aux questions classiques, maintenant.

Le fichier sources.list

Il s'agit du fichier où l'on précise à apt où il doit aller chercher les paquets ou, en terminologie Debian, quelles « sources » (de paquets) il faut utiliser.

Il est donc très important de bien configurer ce fichier, pour que les mises à jour soient assez rapides (ie, choix du bon serveur), et que les paquets installés soient ceux que vous voulez (ie, choix de la bonne distribution).

Créer ce fichier est l'une des première tâches des nouveaux venus sous Debian. Pour ce faire, il est bon de lire la page du manuel en donnant la syntaxe : sources.list.

On peut aussi s'inspirer de /usr/share/doc/apt/examples/sources.list , exemple de fichier fourni avec apt.

Ou encore utiliser l'utilitaire apt-setup qui vous aidera à construire un fichier valide.

Autre exemple, pour avoir la distribution unstable depuis des serveurs situés en France :

 deb http://serveur/debian unstable main 
 deb http://serveur/debian unstable contrib 
 deb http://serveur/debian-non-US unstable/non-US  main non-free

Les sources de la forme deb-src permettent de télécharger les sources de paquets (qui, évidemment, contiennent également les sources de l'application «empaquetée»)

 deb-src ftp://serveur/debian unstable main contrib non-free

Si vous disposez d'une source apt pour les paquets sources, la récupération d'un paquet source (et non binaire) s'obtient par :

 apt-get        source <paquet>

Le plus souvent, quand on essaye de mettre un fichier des sources au point, apt râle qu'il n'arrive pas à télécharger les fichiers promis. C'est en général que l'on s'est trompé dans le chemin. Le plus simple est alors de prendre un client ftp, et d'aller voir quel est le bon chemin directement sur le site. Je veux dire que si j'ai mis dans mon fichier quelque chose comme :

 ["FAUX"] deb ftp://serveur/debain unstable main contrib non-free

dans mon fichier de configuration, apt va se plaindre. Le plus simple est alors de pointer mon netscape sur server pour me rendre compte que le bon chemin est /debian et non /debain.

Voila, avec ces quelques exemples et pointeurs, je pense que vous devriez être capable de vous faire vous-même un fichier de sources aux petits oignons.

3.2.1 Améliorer son sources.list

Sécurité

Les utilisateurs de la version stable ne devraient se passer sous aucun prétexte des mises à jours de sécurité et des améliorations proposées :

 deb http://security.debian.org stable/updates main contrib 
 deb http://security.debian.org stable/updates main non-free 
 deb ftp://serveur/debian dists/proposed-updates/ 
 deb ftp://serveur/debian-non-US dists/proposed-updates/

(Il est conseillé de piocher les mises à jour de sécurité directement sur le serveur américain donné ici pour réduire encore le temps entre la découverte du trou de sécurité et l'installation du contre sur votre machine.)

Optimisation

En général, on considère que le meilleur serveur est le plus rapide. Pour mesurer la vitesse des différents serveurs, on peut utiliser le programme netselect.

Améliorer le fichier sources.list en testant chaque site sur son temps de latence et sa bande passante. Installation de apt-spy

netselect est similaire à apt-spy. Il crée un fichier sources.list plus complet, mais utilise une méthode moins bonne pour choisir le meilleur miroir (comparaison des temps de ping).

apt-setup est la méthode manuelle pour sélectionner les miroirs de sources.list, mais c'est toujours le meilleur moyen de choisir des miroirs tant que apt-spy n'a pas été amélioré.

Mais il faut aussi choisir un miroir à qui l'on puisse faire confiance (ie, exempt de paquets vérolés). Pour cela, le plus sage est sans doute de se limiter à des miroirs officiels. En cas de problème, on peut récupérer le md5sum du paquet sur un miroir officiel pour en vérifier l'authenticité.

Source sur un CDROM

Pour modifier le fichier des sources apt afin qu'il prenne en compte («pointe sur») les paquets fournis dans un CD, il suffit d'appeler la commande suivante et de suivre les instructions :

 apt-cdrom add

Pour en savoir plus