DPKG

De Le Wiki du Forum-Debian.fr
Révision datée du 23 septembre 2010 à 08:35 par L0u!$ (discussion | contributions) (prévention de certains risques)
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
  • 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

Astuce:

  • Automatiser le télé-chargement 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)

Attention: Si vous êtes sur une version "testing" ou "unstable" de Debian, il y a de grands risques à mettre l'option -y ( répondre automatiquement Oui à chaque question ) car il y a un grand risque que certains paquets défectueux soient installés, même si vous utilisez apt-listbugs ou équivalent.

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)