DPKG

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

/!\ Ce document n'a pas été validé par la communauté. Soyez prudent vis-à-vis de son contenu! /!\
Attention: Si au cours de vos manipulations un problème survenait, vous ne pouvez en aucun cas incriminer ce site. Posez vos questions sur le forum.

DPKG est un utilitaire de base pour gérer les paquets Debian .deb

Commandes diverses avec dpkg

  • Installer un paquet présent sur votre système:
# dpkg -i Nom_du_paquet
  • Forcer l'installation un paquet présent sur votre système en ignorant les dépendances.
En général forcer l'installation d'un paquet N'EST PAS UNE BONNE IDéE...
# dpkg -i --force-all Nom_du_paquet
  • Installer un paquet d'une branche particulière (Nous supposons que la branche est déjà dans votre sources.list).
# apt-get install -t unstable Nom_du_paquet
  • Supprimer un paquet:
# dpkg -r Nom_du_paquet
  • Supprimer un paquet même défectueux et marquer comme demandant une réinstallation:
# dpkg -r --force-remove-reinstreq Nom_du_paquet
  • Liste complète des paquets installés:
$ dpkg -l
  • Liste partielle des paquets installés:
$ dpkg -l nom_du_paquet
$ dpkg -l début_du_nom_du_paquet*
$ dpkg -l *nom_partiel_du_paquet*
  • Rechercher l’emplacement du fichier contenu dans un paquet et le nom de ce paquet:
$ dpkg -S nom_partiel_du_fichier
  • Connaître la liste des fichiers d’un paquet:
$ dpkg -L nom_exact_du_paquet
  • Informations complètes sur un paquet:
$ dpkg -p nom_du_paquet
  • Re-configurer un paquet:
$ dpkg-reconfigure nom_exact_du_paquet
  • Lister la version d'un paquet installé
$ apt-cache policy linux-base | grep Installé 
 Installé : 2.6.36~rc5-1~experimental.1
  • Chercher un paquets contenant un mot - nom, description ou version (ici "2.6.36")
$ COLUMNS=120 dpkg -l | grep 2.6.36 
ii  configure-dsl            2.6.36.10                transitional dummy package
ii  linux-base               2.6.36~rc5-1~experimenta Linux image base package
ii  linux-headers-2.6.36-rc5 2.6.36~rc5-1~experimenta All header files for Linux 2.6.36 (meta-package)
ii  linux-headers-2.6.36-rc5 2.6.36~rc5-1~experimenta All header files for Linux 2.6.36 (meta-package)
ii  linux-headers-2.6.36-rc5 2.6.36~rc5-1~experimenta Header files for Linux 2.6.36-rc5-amd64
ii  linux-headers-2.6.36-rc5 2.6.36~rc5-1~experimenta Common header files for Linux 2.6.36-rc5
ii  linux-image-2.6.36-rc5-a 2.6.36~rc5-1~experimenta Linux 2.6.36-rc5 for 64-bit PCs
ii  linux-kbuild-2.6.36      2.6.36-rc5~experimental. Kbuild infrastructure for Linux 2.6.36
ii  linux-source-2.6.36      2.6.36~rc5-1~experimenta Linux kernel source for version 2.6.36 with Debian patches
ii  linux-tools-2.6.36       2.6.36~rc5-1~experimenta Performance analysis tools for Linux 2.6.36-rc5

Astuce:

  • Automatiser le télé-chargement seulement des mises à jour tous les matins à 9h30 : (à placer dans un fichier dans /etc/cron.d)
30 9 * * * (/usr/bin/apt-get update && /usr/bin/apt-get -dy dist-upgrade)

Opération sur les versions

"Geler et dégeler" des paquets

DPKG permet de facilement opérer sur les versions des paquets. Il peut être nécessaire par exemple de conserver un paquet dans une version, et d'empêcher sa mise à jour lors d'un apt-get dist-upgrade ou aptitude safe-upgrade Il peut aussi être nécessaire de redescendre un paquet dans une version antérieure

Attention, les paquets mis en attente (hold) le seront tant que vous n'aurez pas levé le "gel". J'ai pris fluxbox dans les exemples suivants :

  • Conserver un paquet en l'état
# echo fluxbox hold|dpkg --set-selections

  • Afficher les paquets conservés en l'état:
# dpkg --get-selections | grep hold
fluxbox						hold
  • Lever la conservation en l'état
# echo fluxbox install|dpkg --set-selections

Revenir à une version antérieure

Nous sommes sous Sid et souhaitons installer la version testing de fluxbox, et empêcher qu'elle ne soit mise-à-jour accidentellement: (nous allons geler sa version) Les étapes de cet exemple utiliseront fluxbox :

1) Dans votre sources.list vous avez testing et Sid activés
# apt-get update
# apt-get install fluxbox/testing
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Version choisie « 1.1.1+dfsg2-1 » (Debian:testing [amd64]) pour « fluxbox »
Paquets suggérés :
  fluxconf fbpager fbdesk
Paquets recommandés :
  xfonts-terminus
Les paquets retenus suivants seront changés :
  fluxbox
Les paquets suivants seront mis à une VERSION INFÉRIEURE :
  fluxbox
0 mis à jour, 0 nouvellement installés, 1 remis à une version inférieure, 0 à enlever et 16 non mis à jour.
Il est nécessaire de prendre 1 168ko dans les archives.
Après cette opération, 639ko d'espace disque seront libérés.
Souhaitez-vous continuer [O/n] ? o
Réception de : 1 http://ftp.fr.debian.org/debian/ testing/main fluxbox amd64 1.1.1+dfsg2-1 [1 168kB]
1 168ko réceptionnés en 10s (111ko/s)                                                                                     
Lecture des champs des paquets... Fait
Lecture de l'état des paquets... Fait 
Récupération des rapports de bogue... Fait  
Analyse des informations Trouvé/Corrigé... Fait  
dpkg : avertissement : dégradation (« downgrade ») de fluxbox depuis 1.1.1+git20100908.df2f51b-1 vers 1.1.1+dfsg2-1.
(Lecture de la base de données... 173472 fichiers et répertoires déjà installés.)
Préparation du remplacement de fluxbox 1.1.1+git20100908.df2f51b-1 (en utilisant .../fluxbox_1.1.1+dfsg2-1_amd64.deb) ...
Dépaquetage de la mise à jour de fluxbox ...
Traitement des actions différées (« triggers ») pour « man-db »...
Traitement des actions différées (« triggers ») pour « menu »...
Paramétrage de fluxbox (1.1.1+dfsg2-1) ...
Installation de la nouvelle version du fichier de configuration /etc/X11/fluxbox/init ...
Installation de la nouvelle version du fichier de configuration /etc/X11/fluxbox/keys ...
Installation de la nouvelle version du fichier de configuration /etc/menu-methods/fluxbox ...
Traitement des actions différées (« triggers ») pour « menu »...
2) Nous commandons le gel de la version "testing" de fluxbox
# echo fluxbox hold|dpkg --set-selections

Si nous faisons un apt-get dist-upgrade, APT ne proposera pas la mise à jour de fluxbox :

3) Vous apprenez qu'une nouvelle version non boguée de fluxbox est entrée en Sid, vous souhaitez l'installer :
# echo fluxbox install|dpkg --set-selections
# apt-get update
# apt-get install fluxbox

Source forum

Lol 23 septembre 2010 à 11:11 (EAT)