« Dpkg » : différence entre les versions
Page créée avec « <span id="dpkg-sur-debian-le-gestionnaire-de-paquets-de-base"></span> === '''<code>dpkg</code> sur Debian : Le Gestionnaire de Paquets de Base''' === <code>dpkg</code> ('''D'''ebian '''Pack'''age) est l’outil fondamental pour gérer les paquets <code>.deb</code> sur Debian et ses dérivés (Ubuntu, Mint, etc.). Contrairement à <code>apt</code> (qui gère les dépendances et les dépôts), <code>dpkg</code> agit directement sur les paquets '''installés''' ou... » |
|||
| (17 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 22 : | Ligne 22 : | ||
----- | ----- | ||
<span id="commandes-de-base"></span> | |||
== '''2. Commandes de Base''' == | == '''2. Commandes de Base''' == | ||
| Ligne 63 : | Ligne 63 : | ||
<span id="différence-entre-dpkg-et-apt"></span> | <span id="différence-entre-dpkg-et-apt"></span> | ||
== '''3. Différence entre <code>dpkg</code> et <code>apt</code>''' == | == '''3. Différence entre <code>dpkg</code> et <code>apt</code>''' == | ||
| Ligne 123 : | Ligne 124 : | ||
<syntaxhighlight lang="bash">sudo dpkg --remove --force-remove-reinstreq nom-du-paquet</syntaxhighlight></li></ul> | <syntaxhighlight lang="bash">sudo dpkg --remove --force-remove-reinstreq nom-du-paquet</syntaxhighlight></li></ul> | ||
== '''6. Commandes utiles''' == | |||
=== Compter les paquets installés sur Ubuntu === | |||
Compte tout (y compris les résidus et paquets partiellement installés). | |||
<syntaxhighlight lang="bash" line> | |||
sudo dpkg-query -f '${binary:Package}\n' -W | wc -l | |||
</syntaxhighlight> | |||
=== voir tous les paquets === | |||
<syntaxhighlight lang="bash" line copy> | |||
dpkg --list | |||
</syntaxhighlight> | |||
ou | |||
<syntaxhighlight lang="bash" line copy> | |||
dpkg --get-selections | |||
</syntaxhighlight> | |||
=== Liste des paquets récemment mis à jour === | |||
<syntaxhighlight lang="bash" line copy> | |||
ls -lt /var/lib/dpkg/info/*.list | head -n 50 | |||
</syntaxhighlight> | |||
=== Nettoyer rc === | |||
Purge complètement tous les paquets qui ont été désinstallés mais qui avaient laissé des fichiers de configuration derrière eux. | |||
<syntaxhighlight lang="bash" line copy> | |||
dpkg -l | awk '/^rc/{print $2}' | xargs -r sudo dpkg -P | |||
</syntaxhighlight> | |||
source:https://www.debian-fr.org/t/paquets-casses-comment-les-lister/16997/5 | |||
=== Trouver le nom exact des packages de noyau que vous souhaitez désinstaller === | |||
<syntaxhighlight lang="bash" line copy> | |||
dpkg -l | grep "linux-[a-z]*-" | |||
</syntaxhighlight> | |||
=== Rechercher des informations sur les paquets installés === | |||
<syntaxhighlight lang="bash" line copy> | |||
dpkg-query -l '*curl*' | |||
</syntaxhighlight> | |||
=== Obtenir plus de détails sur un paquet spécifique === | |||
<syntaxhighlight lang="bash" line copy> | |||
dpkg-query -s curl | |||
</syntaxhighlight> | |||
=== Rechercher des fichiers appartenant à un paquet === | |||
<syntaxhighlight lang="bash" line copy> | |||
dpkg-query -S curl | |||
</syntaxhighlight> | |||
=== Lister tous les fichiers installés par un paquet === | |||
<syntaxhighlight lang="bash" line copy> | |||
dpkg-query -L curl | |||
</syntaxhighlight> | |||
=== voir si des paquets sont cassés === | |||
<syntaxhighlight lang="bash" line> | |||
apt-get check | |||
dpkg -l | grep -v ^ii | |||
dpkg -l | grep ^rc #(installé et reste des fichiers de configuration) | |||
dpkg -l | grep ^iB #(installé et avec des dépendances cassées) | |||
</syntaxhighlight> | |||
=== Termine la configuration des paquets interrompus. === | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo dpkg --configure -a | |||
</syntaxhighlight> | |||
Utilisez les deux commandes en combo si nécessaire : | |||
Si un paquet est en état "demi-configuré" | |||
<syntaxhighlight lang="bash" line> | |||
sudo dpkg --configure -a # Essaye d'abord de terminer les configs | |||
sudo apt --fix-broken install # Si le problème persiste | |||
</syntaxhighlight> | |||
=== Analyse des fichiers manquants. === | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo apt-file update | |||
for pkg in $(dpkg -l | awk '/^ii/{print $2}'); do | |||
if ! dpkg -L "$pkg" | xargs -n1 test -e 2>/dev/null; then | |||
echo "Fichiers manquants dans: $pkg"; | |||
fi | |||
done | |||
</syntaxhighlight> | |||
----- | ----- | ||
<span id="résumé"></span> | <span id="résumé"></span> | ||
== '''Résumé''' == | |||
* '''<code>dpkg</code>''' = outil bas niveau pour manipuler les paquets <code>.deb</code>.<br /> | * '''<code>dpkg</code>''' = outil bas niveau pour manipuler les paquets <code>.deb</code>.<br /> | ||