Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
dpkg [Le 07/03/2015, 09:07]
217.150.239.253 [Vérifier la présence d'un paquet]
dpkg [Le 03/05/2023, 18:05] (Version actuelle)
bcag2 [Suppression] les paquets avec rc
Ligne 1: Ligne 1:
-{{tag>​administration système apt brouillon}}+{{tag>Focal administration système apt}}
  
 ====== dpkg : le gestionnaire de paquets bas niveau de Ubuntu ====== ====== dpkg : le gestionnaire de paquets bas niveau de Ubuntu ======
  
-''​dpkg'' ​(pour debian package) est un outil logiciel ​en ligne de commande chargé de l'​installation, ​la création, ​la suppression et la gestion des paquets Debian (//.deb//), le type de paquets traités par Ubuntu. Il permet aussi la gestion de paquets Debian en provenance de sources extérieures aux [[:​depots|dépôts APT]].+**dpkg** (pour **D**ebian **p**ac**k**a**g**e) est l'outil de bas niveau gérant les paquets des distributions basées sur Debian. Indispensable au bon fonctionnement d'​Ubuntu,​ cet outil est intégré de base dans toutes ses [[:​versions]] et [[:​variantes]].\\ 
 +Utilisable ​en [[commande_shell|ligne de commande]], il est chargé de l'​installation, ​ la suppression et la gestion des paquets Debian (//.deb//), le type de paquets traités par Ubuntu. Il permet aussi la gestion de paquets Debian en provenance de sources extérieures aux [[:​depots|dépôts APT]]. ​
  
-Pour l'​installation de paquets, ''​dpkg''​ dispose d'une interface graphique, [[:GDebi]], que vous pouvez utiliser si vous préférez éviter la ligne de commande. 
- 
-===== Pré-requis ===== 
- 
-''​dpkg''​ nécessite les [[:​sudo|droits d'​administration]] pour être exécuté. ​ 
 ===== Utilisation ===== ===== Utilisation =====
  
-À la différence de la commande [[:​apt-get]],​ de la [[:software-center|Logithèque]],​ ou de l'​interface graphique ​[[:GDebi]], **dpkg** est un outil qui ne gère pas les dépendances. Ainsi en cas de conflit ou bien lorsque seuls certains paquets impliquant trop de dépendances font défaut, l'​utilisation de cet outil devient presque indispensable. Synaptic et d'​autres [[:​gestionnaire de paquets|gestionnaires de paquets]] utilisent justement cet outil pour résoudre certains problèmes caractéristiques.+À la différence de la commande [[:​apt-get]],​ de la [[:gnome-software|Logithèque]],​ ou de [[:GDebi]], **dpkg** est un outil qui ne gère pas les dépendances. Ainsi en cas de conflit ou bien lorsque seuls certains paquets impliquant trop de dépendances font défaut, l'​utilisation de cet outil devient presque indispensable. ​[[:Synaptic]] et d'​autres [[:​gestionnaire de paquets|gestionnaires de paquets]] utilisent justement cet outil pour résoudre certains problèmes caractéristiques.\\
 Il permet donc de '​jouer'​ sur un seul paquet (installation,​ suppression,​ reconfiguration ) sans bouleverser les dépendances. Il permet donc de '​jouer'​ sur un seul paquet (installation,​ suppression,​ reconfiguration ) sans bouleverser les dépendances.
-Parmi ses autres fonctions dpkg permet aussi d'​avoir des informations précises telles que l'​état ou la description détaillée,​ des paquets disponibles. 
  
 +Parmi ses autres fonctions, **dpkg** permet aussi d'​avoir des informations précises telles que l'​état ou la description détaillée,​ des paquets disponibles.
 +==== Installation de paquets====
 +Quelques [[:​commande_shell|commandes]] utilisées pour installer les paquets:
 +  * L'​option %%-i%%, ou %%--install%%,​ installe le ou les paquets indiqués, au format .deb.  <​code>​sudo dpkg -i <​paquet.deb></​code>​
 +  * L'​option %%-R%%, ou %%--recursive%% (associée à %%-i%%), installe tous les paquets se trouvant dans le répertoire de travail et ses sous-répertoires:​ <​code>​sudo dpkg -i -R *.deb</​code>​
 + ​**dpkg** ne gère pas les dépendances,​ il faut ensuite, pour compléter l'​installation d'une application possédant des dépendances,​ exécuter dans un [[:​terminal]] la [[:​commande_shell|commande]]:<​code>​sudo apt-get -f install</​code>​ Cette [[:​commande_shell|commande]] installera les dépendances. et terminera l'​installation du programme.
  
-==== Installation ==== +==== Installer un programme dans un dossier spécifique à partir de paquets standards====
- +
-  sudo dpkg -i paquet.deb +
-L'​option ''​-i'',​ ou ''​--install'',​ installe le ou les paquets indiqués, au format .deb.   +
- +
-  sudo dpkg -i -R *.deb +
-L'​option ''​-R'',​ ou ''​--recursive''​ (associée à ''​-i''​),​ installe tous les paquets se trouvant dans le répertoire de travail et ses sous-répertoires. +
- +
- +
-''​dpkg''​ ne gère pas les dépendances,​ il faut ensuite, pour compléter l'​installation d'un programme qui a des dépendances,​ exécuter dans un [[:​terminal]] : +
- +
-  sudo apt-get -f install +
- +
-cette commande installera les dépendances puis le programme qui n'a pas pu s'​installer a cause des dépendances manquantes. +
- +
- +
-==== Installer un programme dans un dossier spécifique à partir de paquets standards ​====+
  
 Créer un dossier et se placer à l'​intérieur. ( **mon_dossier_qui_va_bien** ) par exemple. Créer un dossier et se placer à l'​intérieur. ( **mon_dossier_qui_va_bien** ) par exemple.
Ligne 42: Ligne 27:
   ​   ​
 Tout se retrouve à l'​intérieur de **mon_dossier_qui_va_bien**,​ chercher les exécutables pour lancer/​faire des raccourcis vers les programmes. Tout se retrouve à l'​intérieur de **mon_dossier_qui_va_bien**,​ chercher les exécutables pour lancer/​faire des raccourcis vers les programmes.
 +
 ==== Suppression ==== ==== Suppression ====
  
-  * <​code>​sudo dpkg -r nom_du_paquet</​code>​ L'​option ​''​-r'' ​ou ''​--remove'' ​supprime le (ou les) paquet(s) indiqué(s) mais pas les fichiers de configuration associés au(x) paquet(s). +  * <​code ​bash>sudo dpkg -r nom_du_paquet</​code>​ L'​option ​%%-r%% ou %%--remove%% supprime le (ou les) paquet(s) indiqué(s) mais pas les fichiers de configuration associés au(x) paquet(s). 
-  * <​code>​sudo dpkg -P nom_du_paquet</​code>​ L'​option ​''​-P'' ​ou ''​--purge'' ​permet de supprimer les fichiers de configuration associés en même temps que le paquet indiqué. +  * <​code ​bash>sudo dpkg -P nom_du_paquet</​code>​ L'​option ​%%-P%% ou %%--purge%% permet de supprimer les fichiers de configuration associés en même temps que le paquet indiqué. 
-  * <​code>​sudo dpkg --force-all --purge nom_du_paquet</​code>​ L'​usage des options ​''​--force-all'' ​et ''​--purge'' ​permet de forcer la désinstallation du paquet et de supprimer les fichiers de configuration associés.+  * <​code ​bash>​sudo apt -y purge ` dpkg -l | grep "​^rc"​ | awk '​{print $2}' `</​code>​supprime tous les paquets avec les options //rc// (//remove// et //​config-files//,​ cf. plus bas la signification) 
 +  * <code bash>sudo dpkg --force-all --purge nom_du_paquet</​code>​ L'​usage des options ​%%--force-all%% et %%--purge%% permet de forcer la désinstallation du paquet et de supprimer les fichiers de configuration associés.
  
 <note tip> <note tip>
  Cette dernière commande est utile, mais risquée, et permet de forcer la suppression d'un paquet et, normalement,​ celle de ses fichiers de configuration (sauf, notamment, si on en a modifié ou ajouté...) quand par la méthode normale cela bloque les processus de gestion apt.  Cette dernière commande est utile, mais risquée, et permet de forcer la suppression d'un paquet et, normalement,​ celle de ses fichiers de configuration (sauf, notamment, si on en a modifié ou ajouté...) quand par la méthode normale cela bloque les processus de gestion apt.
 </​note>​ </​note>​
- 
- 
 ==== Lister ==== ==== Lister ====
    
-  * <​code>​dpkg -l chaîne</​code>​L'​option ​''​-l''​, ou ''​--list''​, effectue une recherche et affiche une liste des paquets satisfaisant un motif de recherche. +  * <​code>​dpkg -l chaîne</​code>​L'​option ​%%-l%%, ou %%--list%%, effectue une recherche et affiche une liste des paquets satisfaisant un motif de recherche. 
-  * <​code>​dpkg -S fichier</​code>​L'​option ​''​-S''​, ou ''​--search''​, affiche tous les paquets contenant le fichier indiqué en tant que critère de recherche.+  * <​code>​dpkg -S fichier</​code>​L'​option ​%%-S%%, ou %%--search%%, affiche tous les paquets contenant le fichier indiqué en tant que critère de recherche.
  
  
Ligne 65: Ligne 50:
 <​code>​dpkg -l nom_du_paquet</​code>​ <​code>​dpkg -l nom_du_paquet</​code>​
 exemple : exemple :
-<​code>​dpkg -l *office*</​code>​ liste tout les paquets ​lié à libreoffice et openoffice+<​code>​dpkg -l *office*</​code>​ liste tous les paquets ​liés à libreoffice et openoffice
  
-Les deux premiers caractères à gauche vous donne des indications sur l'​état du paquet\\  +Les deux premiers caractères à gauche vous donnent ​des indications sur l'​état du paquet 
-Première colonne: souhait\\ +__Première colonne__ ​: souhait 
 +i : Install (à installer) 
 +r : Remove (à supprimer)
 u : Unknown (inconnu) u : Unknown (inconnu)
-i : Install (à installer) 
-r :Remove (à supprimer) 
 p : Purge (à supprimer avec les fichiers de configuration) p : Purge (à supprimer avec les fichiers de configuration)
-h : Hold (à conserver)\\  +h : Hold (à conserver) 
-Seconde colonne: état\\  +__Seconde colonne__ ​: état
-n : Not Installed (non installé)+
 i : Installed (installé) i : Installed (installé)
 c : Config-files (fichier(s) de configuration existant) c : Config-files (fichier(s) de configuration existant)
 u : Unpacked (dé-compressé) u : Unpacked (dé-compressé)
 +n : Not Installed (non installé)
 f : Failed-config (problème de configuration) f : Failed-config (problème de configuration)
-h : Half-installed (installé partiellement)\\  +h : Half-installed (installé partiellement) 
-source : [[https://lists.ubuntu.com/archives/kubuntu-users/2006-July/006993.html]]+ 
 +==== pkg-config ==== 
 +[[wpfr>​pkg-config]] permet, notamment pour les développeurs,​ de récupérer le chemin où a été installé une librairie. 
 +Ainsi, si on tape en [[:tutoriel/console_ligne_de_commande|ligne de commande]]:​ 
 +<​code>​pkg-config --cflags --libs libpng</code> 
 +cela retourne : 
 +<​code>​-I/usr/include/libpng12 ​-lpng12</code> 
 +qui correspond à la syntaxe pour inclure cette librairie pour la compiler et la lier à un programme avec le  compilateur [[:gcc]]\\ 
 +L'​utilisation classique est donc: 
 +<​code>​gcc -o test test.c $(pkg-config --libs --cflags libpng)</​code>​ 
 + 
 +Ces informations sont contenues dans des fichiers //.pc// recherchés dans différents répertoires,​ voici comment savoir où: 
 +<​code>​pkg-config --variable pc_path pkg-config</​code>​
 ===== Références ===== ===== Références =====
  
     * le manpage : <​code>​man dpkg</​code>​     * le manpage : <​code>​man dpkg</​code>​
- 
  
     * [[http://​manpages.ubuntu.com/​manpages/​precise/​fr/​man1/​dpkg-deb.1.html|Le manpage Ubuntu]]     * [[http://​manpages.ubuntu.com/​manpages/​precise/​fr/​man1/​dpkg-deb.1.html|Le manpage Ubuntu]]
  • dpkg.1425715625.txt.gz
  • Dernière modification: Le 07/03/2015, 09:07
  • par 217.150.239.253