Gestion des paquets, avec apt, sous Debian

Introduction

Ceci est un vieux document que j’avais fait au début de ma découverte de GNU/Linux.
Je l’ai rafraîchis et je le garde car mêmes les bases, peuvent servirent un jour.
Il faut savoir que le gestionnaire de paquet utilise le fichier des sources (fichier dans lequel il va chercher la liste des paquetages disponibles) qui se trouve dans /etc/apt/sources.list. Le fichier /etc/apt/sources.list contenait avant tous les dépôts utilisés. Sur les distributions modernes est apparu le répertoire /etc/apt/sources.list.d permettant de mieux organiser ses sources, en les scindant en plusieurs fichiers. Mon fichier sources.list sur Debian SID (je conserve les sources de l’OS en lui même):
  {% include files/sources.list %}
Et dans le répertoire /etc/apt/sources.list.d, je place les sources des logiciels additionnels que j’installe sur ma distribution : Pour les paquets bumblebee /etc/apt/sources.list.d/bumblebee.list:
deb http://suwako.nomanga.net/debian sid main contrib
deb-src http://suwako.nomanga.net/debian sid main
Pour les paquets dotdeb /etc/apt/sources.list.d/dotdeb.list:
deb http://packages.dotdeb.org squeeze all
deb-src http://packages.dotdeb.org squeeze all
Pour le client owncloud /etc/apt/sources.list.d/owncloud.list:
deb http://download.opensuse.org/repositories/isv:ownCloud:devel/Debian_6.0/ /

Mise à jour des paquets disponibles

Une fois qu’une modification à été apportée au fichier de sources, il faut mettre à jour la liste des paquets disponibles.
Utiliser
apt-get update
pour la mettre à jour.

Mise à niveau du système

Une fois la liste des paquets à jour, un
apt-get upgrade
permet la mise à jour de votre distribution (sans mise à jour de numéro de version majeur),
apt-get dist-upgrade
une mise à jour vers la dernière version stable disponible.
Sur ubuntu, la commande dist-upgrade n’est utilisée que 2 fois par an lors de la sortie d’une nouvelle version. (Pour debian, le passage de sarge à etch, à pris 21 mois)
Avec la commande
apt-show-revisions -u
on peut obtenir une information sur les numéros de version avant et après un
apt-get update

Nettoyage du système

En fait les paquets mis à jour sont téléchargés puis installés. Une fois l’installation correctement faite rien ne les efface. C’est pourquoi une fois la mise à jour effectuée un
apt-get clean
permet de supprimer le cache des paquets.
Il est possible d’utiliser la commande
apt-get autoremove
pour supprimer les paquets inutiles.
Quelques autres outils à essayer : deborphan, cruft.

Recherche de paquet

Pour rechercher le paquet pidgin (Ancien gaim) :
apt-cache search pidgin
On peut combiner deux mots (ou plus) pour limiter les résultats de la recherche. Il est aussi possible d’utiliser les expression régulières.

Ajouter un paquet

Pour installer un paquet 3 façons de faire :

Directement depuis une source de paquets

Pour installer le paquet pidgin depuis une des sources de paquets :
apt-get install pidgin
Il est parfois utile d’utiliser l’option –reinstall en cas de problème. Une autre option utile, est –download-only permettant de télécharger uniquement le paquet sans l’installer.

Depuis un fichier .deb ou .rpm

Installer un fichier deb ce fait en utilisant
dpkg -i paquet.deb
Avant de pouvoir installer un fichier RPM (format des paquets RedHat et Mandriva) sur debian, il faut le convertir en .deb:
Pour ce faire, il faut utiliser l’utilitaire alien (alien - Installation de paquets non natifs avec dpkg)
apt-get install alien
puis faire :
alien fichier.rpm

Depuis les sources

Pour pouvoir installer proprement (Il faut passer par la construction d’un paquet deb ou rpm, pour que tous les fichiers installés soient connus (pour être supprimés)). un logiciel dont on ne possède que les sources il suffit d’utiliser l’outil checkinstall. Checkinstall se substitue à la commande make install et créé à ce moment un paquet qu’il est ensuite possible d’installer avec la commande dpkg d’un système debian (Donc Ubuntu aussi). Ainsi avec :
./configure
make
sudo checkinstall
sudo spkg -i package.deb
On possède un moyen simple, propre et efficace d’ajouter un paquet à notre distribution et ce depuis les sources.

Obtenir des informations détaillés sur un paquet

Pour obtenir des informations un peu plus importantes que celles retournées par search :
apt-cache show paquet

Forcer l’installation d’un paquet

apt-get install -f -o Dpkg::Options::="--force-overwrite" libaudio2

Suppression d’un paquet

Pour supprimer pidgin :
apt-get remove paquet
ou
apt-get purge paquet
(supprime aussi les fichiers de settings en général le répertoire .paquet dans le répertoire home).

Récuperer les codes sources d’un paquet

Grâce à la commande
apt-get source pidgin
il est possible de récupérer les sources de pidgin dans le répertoires courant (apt s’occupe d’appliquer les patchs spécifiques à la distribution).

Analyse des dépendances

Pour obtenir la liste des dépendances d’un paquet :
apt-rdepends pidgin

Récupérer une clé inconnue

Si le message d’erreur suivant :
Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 3F64E067D0845D62
apparait lors d’un apt-get update, il suffit d’importer la clef.
Récupération de la clef:
gpg --keyserver hkp://subkeys.pgp.net --recv-keys 3F64E067D0845D62
Ajout de la clef au trousseau
gpg --export --armor 3F64E067D0845D62 | sudo apt-key add -

Retrouver un fichier

Il faut d’abord installer le paquet qui permettre de recherche un fichier manquant
sudo apt-get install apt-file
Ensuite, tout simplement :
apt-file search fichier
Qui vous retourne, si il le trouve, le paquet correspondant.

Duplication des paquets installés

Sauvegarde de la liste des paquets installés sur un système :
dpkg --get-selections > packages.list
Réinstallation la liste des paquets sur une autre machine :
dpkg --set-selections < packages.list
Puis pour les installer (sur l’autre machine) :
apt-get dselect-upgrade<