Différence entre purge et dpkg -P?

9

J'ai dû désinstaller phpmyadmin du serveur de production et googlé pour cela et utilisé ceci:

sudo dpkg -P phpmyadmin

Eh bien, cela a bien fonctionné, mais il semble que tout le monde sur Ubuntu utilise une purge à la place

sudo apt-get purge phpmyadmin 

Ai-je fait quelque chose de mal? Toutes les conséquences dont je devrais être conscient (c'est mon serveur de production après tout) Est-ce que tous les bits du phpmyadmin sont vraiment désinstallés via dpkg -P?

Houman
la source
Dans la page de manuel de dpkg, il est écrit "-P, --purge package", donc -P signifie "purge", donc, à mon avis, ce devrait être la même chose. J'utilise personnellement 'apt-get purge'
hytromo

Réponses:

5

dpkget apt-getsont deux façons différentes d'installer le logiciel. Fondamentalement, apt-get, aptitude et synaptic sont construits sur le programme de gestion des paquets dpkg de debian. Ils remplissent tous la même fonction de base - la gestion des packages, mais ont quelques fonctionnalités supplémentaires. L'une des fonctionnalités supplémentaires d'apt-get est qu'il installe les dépendances et pas dpkg.

Concernant le -p / purge ...

L' -Pentrée dpkgsignifie --purgeet supprimera tout, y compris les paramètres et les fichiers de configuration. Du manuel:

-r, --remove, -P, --purge package...|-a|--pending

          Remove  an  installed  package. -r or --remove remove everything
          except conffiles. This may avoid having to reconfigure the pack‐
          age  if  it  is  reinstalled later. (Conffiles are configuration
          files that are listed in the DEBIAN/conffiles control file).  -P
          or  --purge  removes  everything,  including conffiles. If -a or
          --pending is given instead of a package name, then all  packages
          unpacked,   but   marked   to  be  removed  or  purged  in  file
          /var/lib/dpkg/status, are removed or purged, respectively. Note:
          some  configuration  files might be unknown to dpkg because they
          are created and handled  separately  through  the  configuration
          scripts. In that case, dpkg won't remove them by itself, but the
          package's postrm script (which is called by dpkg), has  to  take
          care of their removal during purge. Of course, this only applies
          to files in system directories, not configuration files  written
          to individual users' home directories.

          Removing of a package consists of the following steps:

          1. Run prerm script

          2. Remove the installed files

          3. Run postrm script

La même chose vaut pour purgeen apt-get.

 remove
       remove is identical to install except that packages are removed
       instead of installed. Note the removing a package leaves its
       configuration files in system. If a plus sign is appended to the
       package name (with no intervening space), the identified package
       will be installed instead of removed.


 purge
       purge is identical to remove except that packages are removed and
       purged (any configuration files are deleted too).

Fondamentalement, c'est la même option. Attention: la suppression des dépendances ne se produit pas avec dpkg. apt-get supprime les dépendances

Documentation du commentaire de Lekensteyn:

Rinzwind
la source
+1 était sur le point d'écrire une réponse similaire. Documentation: debian.org/doc/manuals/debian-faq/ch-pkgtools.en.html . La chose de la dépendance doit être mise en évidence. Exemple: la suppression php5entraînera également la phpmyadminsuppression (en supposant qu'il n'y ait pas d'autres SAPI PHP). aptpeut gérer cela, dpkgne peut pas le faire lui-même.
Lekensteyn
Excellent lekensteyn. Je regardais toujours (parce que le truc des dépendances me harcelait). Ajouté dans :) N'hésitez pas à modifier ma réponse si vous en avez plus: D
Rinzwind
C'est bon :) Si quelqu'un rencontre le problème de dépendance après utilisation dpkgdirecte, il peut le corriger avec sudo apt-get install -f(comme suggéré par dpkg)
Lekensteyn
Merci à tous pour vos conseils. Alors est-ce que je fais un sudo apt-get install -f phpmyadmindans mon cas pour m'assurer que les dépendances sont supprimées? Et si les dépendances sont partagées?
Houman
Les dépendances @Kave non installées manuellement seront supprimées lorsqu'aucun package installé n'en dépend.
nanofarad