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 12/02/2016, 18:26]
cafecho [dpkg : le gestionnaire de paquets bas niveau de Ubuntu]Gedebi n'est pas l'interface graphique de dpkg
dpkg [Le 03/05/2023, 18:05] (Version actuelle)
bcag2 [Suppression] les paquets avec rc
Ligne 1: Ligne 1:
-{{tag>Precise Trusty ​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 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]].\\ +**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 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]].  +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]]. ​
- +
-===== Pré-requis ===== +
-  * Disposer des [[:​sudo|droits d'​administration]]. +
-  * Disposer d'une connexion à Internet configurée et activée. +
-  * Disposer de quelques notions d'​utilisation d'un [[:terminal]]. +
  
 ===== 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 41: 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>
Ligne 62: 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 donnent 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)\\  +i : Install (à installer) 
-r : Remove (à supprimer)\\  +r : Remove (à supprimer) 
-u : Unknown (inconnu)\\  +u : Unknown (inconnu) 
-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 
-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é)\\  +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.1455298011.txt.gz
  • Dernière modification: Le 12/02/2016, 18:26
  • par cafecho