Unterschied zwischen Purge und dpkg -P?

9

Ich musste phpmyadmin vom Produktionsserver deinstallieren und habe danach gegoogelt und Folgendes verwendet:

sudo dpkg -P phpmyadmin

Nun, das hat gut funktioniert, aber es scheint, dass alle anderen unter Ubuntu stattdessen eine Bereinigung verwenden

sudo apt-get purge phpmyadmin 

Habe ich etwas falsch gemacht Alle Konsequenzen, die ich beachten sollte (es ist schließlich mein Produktionsserver) Sind alle Teile des phpmyadmin wirklich über dpkg -P deinstalliert?

Houman
quelle
Auf der Manpage von dpkg steht "-P, --purge package", also steht -P für "purge", also sollte es, wie ich es mir vorstelle, dasselbe sein. Ich persönlich benutze 'apt-get purge'
hytromo

Antworten:

5

dpkgund es apt-getgibt zwei verschiedene Möglichkeiten, Software zu installieren. Grundsätzlich basieren apt-get, aptitude und synaptic auf dem dpkg-Paketverwaltungsprogramm von debian. Sie alle führen dieselbe Grundfunktion aus - die Paketverwaltung, verfügen jedoch über einige zusätzliche Funktionen. Eine der zusätzlichen Funktionen von apt-get ist, dass es Abhängigkeiten installiert und dpkg nicht.

In Bezug auf -p / purge ...

Das -Pin dpkgbedeutet --purgeund entfernt alles, einschließlich Einstellungen und Konfigurationsdateien. Aus dem Handbuch:

-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

Das gleiche gilt für purgein 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).

Grundsätzlich ist es die gleiche Option. Wohlgemerkt: Das Entfernen von Abhängigkeiten erfolgt mit dpkg nicht. apt-get entfernt Abhängigkeiten

Dokumentation aus Kommentar von Lekensteyn:

Rinzwind
quelle
+1 wollte gerade eine ähnliche Antwort schreiben. Dokumentation: debian.org/doc/manuals/debian-faq/ch-pkgtools.en.html . Die Abhängigkeitssache sollte hervorgehoben werden. Beispiel: Das Entfernen php5führt auch phpmyadminzum Entfernen (vorausgesetzt, es gibt keine anderen PHP-SAPIs). aptkann damit umgehen, dpkgkann es nicht selbst tun.
Lekensteyn
Ausgezeichnete Lekensteyn. Ich habe immer noch nachgesehen (weil mich das Ding mit den Abhängigkeiten nervte). Hinzugefügt in :) Fühlen Sie sich frei, meine Antwort zu bearbeiten, wenn Sie mehr haben: D
Rinzwind
Es ist in Ordnung :) Wenn jemand das Abhängigkeitsproblem trifft, nachdem er es dpkgdirekt verwendet hat, kann er es mit sudo apt-get install -f(wie von vorgeschlagen dpkg)
Lekensteyn
Vielen Dank an alle für Ihren Rat. sudo apt-get install -f phpmyadminMache ich in meinem Fall eine, um sicherzustellen, dass die Abhängigkeiten gelöscht werden? Was ist, wenn die Abhängigkeiten gemeinsam genutzt werden?
Houman
@Kave-Abhängigkeiten, die nicht manuell installiert wurden, werden entfernt, wenn keine installierten Pakete von ihnen abhängen.
Nanofarad