Różnica między czyszczeniem a dpkg -P?

9

Musiałem odinstalować phpmyadmin z serwera produkcyjnego, poszukałem go i użyłem tego:

sudo dpkg -P phpmyadmin

Cóż, działało to dobrze, ale wydaje się, że wszyscy inni na Ubuntu używają zamiast tego czyszczenia

sudo apt-get purge phpmyadmin 

Czy zrobiłem coś złego? Wszelkie konsekwencje, o których powinienem wiedzieć (w końcu to mój serwer produkcyjny) Czy wszystkie części phpmyadmin naprawdę zostały odinstalowane przez dpkg -P?

Houman
źródło
Na stronie podręcznika dpkg jest napisane „-P, --purge package”, więc -P oznacza „purge”, więc gdy o tym myślę, powinno być tak samo. Ja osobiście używam „apt-get purge”
hytromo

Odpowiedzi:

5

dpkgi apt-getsą 2 różne sposoby instalowania oprogramowania. Zasadniczo apt-get, aptitude i synaptic są zbudowane na programie do zarządzania pakietami debkg dpkg. Wszystkie wykonują tę samą podstawową funkcję - zarządzanie pakietami, ale mają pewne dodatkowe funkcje. Jedną z dodatkowych funkcji apt-get jest to, że instaluje on zależności, a dpkg nie.

Odnośnie opcji -p / purge ...

-PW dpkgużyciu --purgei usunie wszystko, łącznie setttings i plików konfiguracyjnych. Z instrukcji:

-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

To samo tyczy purgesię 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).

Zasadniczo jest to ta sama opcja. Pamiętaj: usuwanie zależności nie dzieje się w przypadku dpkg. apt-get usuwa zależności

Dokumentacja z komentarza Lekensteyn:

Rinzwind
źródło
+1 miał właśnie napisać podobną odpowiedź. Dokumentacja: debian.org/doc/manuals/debian-faq/ch-pkgtools.en.html . Należy podkreślić kwestię zależności. Przykład: usunięcie php5spowoduje również phpmyadminusunięcie (przy założeniu, że nie ma innych SAP SAPI). aptporadzi sobie z tym, dpkgnie może zrobić tego sama.
Lekensteyn,
Doskonałe lekensteyn. Wciąż patrzyłem na (bo dokuczliwe były mi zależności). Dodano go :) Zapraszam do edycji mojej odpowiedzi, jeśli masz więcej: D
Rinzwind
W porządku :) Jeśli ktoś trafi na problem zależności po dpkgbezpośrednim użyciu , może go naprawić za pomocą sudo apt-get install -f(zgodnie z sugestią dpkg)
Lekensteyn
Dziękuję wszystkim za porady. Czy więc robię sudo apt-get install -f phpmyadminw moim przypadku, aby upewnić się, że zależności zostały usunięte? Co się stanie, jeśli zależności będą wspólne?
Houman
Zależności @Kave, które nie zostały zainstalowane ręcznie, zostaną usunięte, jeśli nie zostaną od nich zainstalowane żadne zainstalowane pakiety.
nanofarad