Chez ouam

/home/jmfrouin

View on GitHub
4 February 2013

Gestion des paquets, avec apt, sous Debian

by Jean-Michel Frouin

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):

  deb http://debian.mirrors.ovh.net/debian/ jessie main contrib non-free
deb-src http://debian.mirrors.ovh.net/debian/ jessie main contrib non-free

deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main

# jessie-updates, previously known as 'volatile'
deb http://debian.mirrors.ovh.net/debian/ jessie-updates main
deb-src http://debian.mirrors.ovh.net/debian/ jessie-updates main

# jessie-backports, previously on backports.debian.org
deb http://debian.mirrors.ovh.net/debian/ jessie-backports main
deb-src http://debian.mirrors.ovh.net/debian/ jessie-backports main

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<
tags: