« 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>


<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é''' ===
 
== '''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 />