À quoi sert dpkg?

21

Ma question est simple - je veux en savoir plus sur dpkg - que fait-elle?

rɑːdʒɑ
la source
Cela a été modifié au moins deux fois pour améliorer la clarté - en l'état, il peut être utile de le garder ouvert (à condition qu'il ne s'agisse pas d'un doublon) car il a généré au moins une bonne réponse.
belacqua
1
vous devez d'abord visiter: en.wikipedia.org/wiki/Dpkg
Pandya

Réponses:

17

Comme cela a été dit, dpkgest un outil système de bas niveau pour extraire, analyser, décompresser et installer ou supprimer des fichiers .deb. Cependant, il est préférable d'utiliser Software Centreou Gdebid'installer ou de supprimer des fichiers .deb obtenus à partir d'autres sources car ces deux programmes ont une résolution de dépendance.

Cependant, ce qui n'a pas été expliqué est l' anatomie d'une mise à jour utilisant dpkget apt-get. Si, par exemple, nous appelons apt-getà installer cheese, l'arborescence des dépendances est analysée et les fichiers nécessaires sont récupérés par apt-get, qui les transmet ensuite dpkgpour extraire, analyser et installer aux emplacements corrects et les configurer en fonction des scripts qu'ils contiennent.

Les scripts lus dpkgà l'intérieur de chaque fichier .deb sont importants car ils fournissent des informations au programme concernant l'installation, la suppression et la configuration des packages. Par conséquent, lorsque vous regardez, /var/log/dpkg.logil y a beaucoup de détails détaillés sur les «déclencheurs» et les packages passant par différentes étapes de décompression et de configuration. Dans son blog, Raphael Hertzog (qui est un développeur Debian clé et mainteneur dudpkg paquet) explique plus sur les déclencheurs de dpkg et la façon dont dpkginspecte et configure les paquets.

Nous allons maintenant au cœur de ce qui dpkgfait; il gère de manière experte les paquets Debian, plutôt que leurs dépendances. Avec dpkg-deb, par exemple, vous pouvez effectuer diverses actions dans l'analyse et l'extraction manuelle de fichiers des archives .deb; voir man dpkg-debpour plus d'informations.

Le statut de chaque package est répertorié dans /var/lib/dpkg/status, qui peut être utilisé avec greppour vérifier un package particulier. Dpkgpeut également être appelé pour reconfigurer des packages particuliers qui ont été configurés (voir man dpkg-reconfigure):

sudo dpkg-reconfigure <package>

Ou pour effectuer une configuration de tous les packages non configurés s'il y a eu un problème avec une mise à jour et que la configuration de certains packages est toujours en attente:

sudo dpkg --configure -a

Pour un excellent tutoriel qui se concentre sur dpkget apt-get, voir les chapitres 5 et 6 du manuel Debian , qui est la meilleure discussion disponible. Entrez man dpkgdans votre terminal ou consultez les pages de manuel Ubuntu en ligne pour voir toutes les nombreuses options disponibles, comme utiliser dpkg -lpour répertorier les packages actuellement installés.


la source
4

dpkg est un moyen en ligne de commande pour installer à partir d'un .deb ou supprimer des packages déjà installés. Par exemple, si vous aviez un fichier .deb dans votre répertoire personnel, l'exécution dpkg -i yourpackage.debinstallera ce package pour vous. Je trouve cela utile au moins pour moi parce que parfois en cliquant sur un fichier .deb, il charge Ubuntu Software Center mais ne l'installe jamais vraiment ou a des problèmes.

inconnu
la source
4

Comme toujours, la mancommande est un excellent point de départ.
man dpkgpeut vous donner toutes les options, néanmoins:

dpkg est un gestionnaire de paquets pour les systèmes basés sur Debian. Il peut installer, supprimer et créer des packages, mais contrairement aux autres systèmes de gestion de packages, il ne peut pas télécharger et installer automatiquement les packages et leurs dépendances.

Donc, fondamentalement, c'est apt-get sans résolution de dépendance, et il est utilisé pour installer des fichiers .deb.

Je vous préviens cependant: la désinstallation des packages à l'aide de dpkg, dans la plupart des cas, n'est PAS recommandée. Il est préférable d'utiliser un gestionnaire de packages qui gère les dépendances, pour garantir que le système est dans un état cohérent.

Par exemple, en utilisant dpkg -r zipvous pouvez supprimer le package zip, mais tous les packages qui en dépendent seront toujours installés et ne fonctionneront plus correctement.

Vous pouvez en lire plus à ce sujet dans le guide du serveur et ailleurs .

LnxSlck
la source