Recent Changes - Search:

Général

Sécurité

Windows

Linux

Systeme

Réseaux

XBMC

Liens

PmWiki

edit SideBar

GestionDesPackageSousDebian

"Ce document me sert de mémo sur les différentes commandes de gestion des paquets sous Debian. Je le diffuse en espérant qu’il puisse servir à d’autres personnes."

Cette petite aide est une recopie intégrale de la source où j'ai trouvé cette information. Les informations ci-dessous ne sont pas forcément maintenue à jour ou elles ont été modifiées par mes soins. Il est recommandé d'utiliser le site source.

Source : http://www.coagul.org/article.php3?id_article=157

Autre source (06/09/2010) : http://smhteam.info/wiki/index.linux.php5?wiki=Apt

dpkg : Utilitaire de base pour gérer les paquets Debian .deb

dpkg est l’utilitaire de base sous Debian, pour installer, supprimer, configurer ou obtenir des informations sur des paquets (.deb). Contrairement à apt-get, il ne s’occupe pas du téléchargement et ne gère pas les dépendances.

Les scripts de pré-installation et post-installation des paquets sont disponibles dans :

   /var/lib/dpkg/info

Dans ce répertoire, les fichiers terminés par .list donnent la liste des fichiers installés par le paquet.

  • Informations concernant 'dpkg -l'. Cette commande renvoie la liste des paquets présents sur le système ainsi que leur état. La signification des premier caractères :
   Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
   État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé
   Err?=(aucune)/H=à garder/besoin Réinstallation/X=les deux (État,Err: majuscule=mauvais)

apt : Utilitaire avancé pour gérer les paquets Debian .deb

apt-get est un utilitaire plus évolué que dpkg qui permet d’installer des paquets en les téléchargeant depuis internet (ou depuis une autre source) à partir d’une liste de sites indiqués dans le fichier /etc/apt/sources.list.

Ce fichier contient la liste des sources des paquets. Voici la syntaxe générale d’une ligne :

{deb | deb-src} URL {stable | testing | unstable} {main | contrib | non-free}

  • deb : adresse de paquets binaires (compilés)
  • deb-src : adresse de paquets sources
  • main : les paquets principaux
  • contrib : les paquets plus vraiment supportés
  • non-free : les paquets de logiciels non libres (propriétaires)

La ligne suivante permet de récupérer tous les paquets binaires de la Debian testing

   deb http://ftp.fr.debian.org/debian/ testing main contrib non-free

La même ligne avec un accès ftp:

   deb ftp://ftp.fr.debian.org/debian/ testing main contrib non-free

Il est possible d’écrire la ligne précédente sur 3 lignes :

   deb http://ftp.fr.debian.org/debian/ testing main
   deb http://ftp.fr.debian.org/debian/ testing contrib
   deb http://ftp.fr.debian.org/debian/ testing non-free

Cette ligne est nécessaire uniquement pour pouvoir compiler des sources :

   deb-src http://ftp.fr.debian.org/debian/ testing main

Cette ligne (facultative) permet de récupérer des paquets non autorisés aux US (ex : Algorithmes d’encryptage) :

   deb http://non-us.debian.org/debian-non-US/ testing/non-US main

Cette ligne permet de récupérer les mises à jour de sécurité de la section principale (main)

   deb http://security.debian.org/ testing/updates main

Voici un exemple complet pour suivre une Debian testing :

   deb ftp://ftp.fr.debian.org/debian/ testing main non-free
   deb-src ftp://ftp.fr.debian.org/debian/ testing main
   deb http://security.debian.org/ testing/updates main

La commande « apt-setup » permet d’utiliser une interface texte pour ajouter des sources à la fin du fichier.

La commande « netselect-apt » (apt-get install netselect-apt) permet de rechercher le miroir officiel Debian qui donne les meilleures performances de téléchargement. Il faut juste lui donner en argument la distribution utilisée :

   netselect-apt testing

dpkg-reconfigure debconf : Configurer apt

Cette commande, permet de modifier le paramétrage d’apt et d’indiquer le niveau de priorité à partir duquel il doit poser des questions :

   dpkg-reconfigure debconf

apt-get update : Mettre à jour la base de données des paquets

apt-get install / remove : Installer ou supprimer des paquets

apt-get upgrade / dist-upgrade : Mettre à jour la distribution

apt-get clean : Vider le cache des paquets téléchargés

apt-cache : Recherches sur les paquets

apt-file : Rechercher à quel paquet appartient un fichier

Comme « dpkg -S » ou « dpkg -L », cette commande, permet de retrouver à quel paquet appartient un fichier ou permet de connaître le détail des fichiers d’un paquet. Mais contrairement à « dpkg », « apt-file », fonctionne également avec les paquets non installés à condition de mettre à jour la base de données avant de l’utiliser.

Par défaut, cette commande n’est pas installée. Pour pouvoir l’utiliser, il faut donc installer un paquet supplémentaire :

   apt-get install apt-file

Remarque : Étant donné le temps important nécessaire pour mettre à jour le cache, il est souvent plus rapide de faire la recherche directement sur Internet : http://www.debian.org/distrib/packages#search_contents

aptitude : Utilitaire avancé pour gérer les paquets Debian .deb

aptitude est utilisable en ligne de commandes comme apt. aptitude est désormais le frontal en mode texte pour APT à utiliser de préférence à la place d’apt-get car il est plus performant.

Astuce : personnellement, je place dans la crontab de root (crontab -e), la ligne suivante pour télécharger tous les jours les derniers paquets mais sans les installer :

   00 18 * * * /usr/bin/aptitude update && /usr/bin/aptitude --download-only --assume-yes dist-upgrade &&

/usr/bin/aptitude autoclean

apt-listchanges : connaître le détail des modifications des paquets

Le paquet « apt-listchanges », permet d’être informé à l’écran ou par mail des modifications effectuées sur les paquets avant de mettre à jour votre système à l’aide des commandes « apt-get upgrade » ou « apt-get dist-upgrade »

Pour cela, il faut commencer par installer ce nouveau paquet :

   apt-get install apt-listchanges

Ensuite, il faut le configurer :

   dpkg-reconfigure apt-listchanges

Pour informations, voici le paramétrage que j’utilise :

Avec cette configuration et avant chaque mise à jour du système, les modifications seront affichées à l’écran et envoyées par mail et une demande de confirmation sera affichée.

apt-listbugs : Éviter d’installer des paquets buggès

Le paquet « apt-listbugs », télécharge avant chaque installation de paquets les rapports de bugs émis sur ce paquet. Si un rapport de bug est émis, un message d’avertissement apparaît et demande une confirmation avant d’installer ce paquet. Cela permet d’éviter d’installer des paquets buggés ou d’être informé de problèmes éventuels.

Pour cela, il suffit d’installer ce paquet :

   apt-get install apt-listbugs

netselect-apt : Trouver le miroir Debian le plus rapide

Certains miroirs Debian étant très sollicité (ex : ftp.fr.debian.org surtout lors de la sortie d’une nouvelle version) il existe un outil scannant tous les miroirs disponibles à la recherche du plus efficace. Installation du paquet :

   aptitude install netselect-apt

Lancement de la détection pour la version stable :

   netselect-apt stable

Pour plus d’infos, ne pas hésiter à lire la page de man.

Utiliser apt-get derrière un proxy

Pour faire fonctionner apt-get derrière un proxy il faut ajouter la ligne suivante dans le fichier « /etc/apt/apt.conf » (Si ce fichier n’existe pas, il faut le créer) :

   Acquire::http::Proxy "http://ServeurProxy:Port";

Il faut remplacer ServeurProxy par l’adresse IP ou le nom du serveur Proxy et Port par le numéro du port utilisé par le Proxy (ex : 3128 pour Squid).

Le gros avantage de passer derrière un Proxy est d’éviter de télécharger plusieurs fois les mêmes paquets pour plusieurs postes. Le programme « apt-proxy » permet également de mettre en cache des paquets pour plusieurs postes, mais celui-ci n’est disponible que sur Debian Stable et Instable (Pas sur Testing).

Copier la configuration d’un système sur un autre

Sur le premier système, faire :

   dpkg --get-selections "*" >MaSelection.txt

Le paramètre "*", permet de prendre en compte les paquets à purger. Le fichier MaSelection.txt contiendra tous les paquets installés sur le système. Sur l’autre ordinateur récupérer le fichier MaSelection.txt et lancer les commandes suivantes :

   dselect update
   dpkg --set-selections <MaSelection.txt
   apt-get dselect-upgrade

Automatiser le téléchargement des mises à jour

Pour télécharger automatiquement à 12H05 du lundi au vendredi les mises à jour et envoyer un message d’avertissement à root, il faut écrire la ligne suivante dans le crontab de root (crontab -e) :

   5 12 * * 1-5 (/usr/bin/apt-get update && /usr/bin/apt-get -dy dist-upgrade) | mail -s "Mise à jour `hostname`" root

Automatiser l’installation des mises à jour de sécurité

ATTENTION : Il peut être dangereux de faire des installations automatiquement sans aucun contrôle de l’administrateur. Donc la procédure ci-dessous est donnée à titre expérimentale et sans aucune garantie (D’ailleurs, je ne l’utilise pas :-) )

Pour automatiser l’installation des mises à jour de sécurité sans mettre à jour tout le système, il faut commencer par créer un nouveau fichier (ex : /etc/apt/sources.list.security) contenant la ligne suivante pour une Debian testing :

   deb http://security.debian.org/ testing/updates main

Ensuite pour lancer l’installation automatiquement à 12H5 du lundi au vendredi et envoyer un message d’avertissement à root, il faut écrire la ligne suivante dans le crontab de root (crontab -e) :

   5 12 * * 1-5 (/usr/bin/apt-get -o Dir::Etc::SourceList=/etc/apt/sources.list.security update && /usr/bin/apt-get -o Dir::Etc::SourceList=/etc/apt/sources.list.security dist-upgrade) | mail -s "Mise à jour Sécurité `hostname`" root

Purger les paquets orphelins avec « deborphan »

Après avoir installé et supprimé de nombreux paquets, il arrive que des paquets contenant des librairies deviennent inutiles car celles-ci ne sont plus utilisées par aucun programme. Le paquet « deborphan » donne la liste de ces libraires inutiles (orphelines).

Installation du paquet :

   apt-get install deborphan

Une fois la paquet installé, la commande suivante donne la liste des paquets inutiles :

   deborphan

Et la commande suivante permet de supprimer ces paquets :

   apt-get --purge remove `deborphan`

''Remarque : Il faut lancer la commande précédente plusieurs fois jusqu’à la suppression de tous les paquets orphelins. Dans mon cas, je l’ai lancé 3 fois et j’ai supprimé 32 paquets et 17Mo. ''

Reconstituer un paquet à partir des fichiers installés

Si vous avez installé un paquet sur un poste et souhaitez l’installer sur un autre poste mais que celui-ci n’est plus disponible sur Internet, il est possible de le reconstruire.

Pour cela, il faut commencer par installer les paquets suivants :

   apt-get install fakeroot dpkg-repack

Ensuite, la commande suivante permet de reconstruire le paquet :

   fakeroot dpkg-repack MonPaquet

Ensuite, il suffit de copier le paquet régénéré sur l’autre poste et de l’installer :

   dpkg -i MonPaquet

Remarque : Cette méthode permet également de créer des paquets personnalisés avec vos propres fichiers de configuration.

Passer de Debian Testing à Debian Stable

Si à force de jouer avec votre fichier « /etc/apt/sources.list », vous avez installer par erreur des paquets d’une version plus récente (ex : Des paquets de Testing alors que vous êtes sous Stable), voici comment revenir en arrière et repasser tous vos paquets dans une version plus ancienne (ex : Stable).

Pour information, la commande suivante, permet de connaître les paquets plus récent que la version utilisée :

   apt-show-versions | grep newer

Créer le fichier « /etc/apt/preferences » et ajouter les lignes suivantes :

   Package: *
   Pin: release a=stable
   Pin-Priority: 1001

Ces lignes indiques que vous souhaitez utiliser la version stable. En mettant une « Pin-Priority » supérieur à 1000 cela autorise une mise jour vers des paquets plus anciens.

Ensuite, une simple mise à jour avec la simple commande suivante devrait réinstaller tous les paquets dans leur version « Stable » :

   aptitude upgrade

Autrement, ne pas hésiter à faire « man apt_preferences » ou man « apt-show-versions » pour avoir plus d’informations.

Attention : Une mise à jour vers une version plus ancienne n’est pas garanti mais fonctionne bien dans la plupart des cas.

Documentation officielle

Pour en savoir plus sur « apt », un paquet contenant une documentation très complète et en français existe :

   aptitude install apt-howto-fr aptitude-doc-fr

Après l’installation de ces paquets, la documentation est disponible dans les dossiers « /usr/share/doc/Debian/apt-howto » et « /usr/share/doc/aptitude ».

Cette documentation est fournie au format html, pdf et postscript. Pour ces deux dernières, il faut installer le paquet « gunzip » pour pouvoir les décompresser et les lire.

Liens Internet

La documentation officielle en français et très bien faite : http://www.debian.org/doc/manuals/quick-reference/ch-package.fr.html

Pour voir la liste des paquets ou rechercher dans les répertoires de paquets ou rechercher dans le contenu des paquets : http://www.debian.org/distrib/packages

Rechercher des informations sur des bugs :

Installer l’ancienne version d’un paquet : http://snapshot.debian.net/

Mise à jour de la signature d'un repository

Lors de la mise à jour des sources, il est possible que l'outil apt-get affiche un message d'erreur de genre :

   W: GPG error: ftp://ftp.fr.debian.org testing Release: 
   The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 010908312D230C5F

   W: There is no public key available for the following key IDs: 010908312D230C5F

Il s'agit d'une nouvelle fonctionnalité du système d'apt-get permettant de garantir l'authenticité des serveurs de mise à jour Debian.

Pour y remédier, il suffit de saisir les deux commandes suivantes, en prenant soin de remplacer le numéro de la clé par celui affiché dans le message d'erreur :

   gpg --keyserver pgpkeys.mit.edu --recv-key 010908312D230C5F
   gpg -a --export 010908312D230C5F | apt-key add -
Edit - History - Print - Recent Changes - Search
Page last modified on September 06, 2010, at 10:47 PM