Разница между продувкой и dpkg -P?

9

Я должен был удалить phpmyadmin с рабочего сервера и гуглить на нем и использовал это:

sudo dpkg -P phpmyadmin

Ну, это сработало нормально, но кажется, что все остальные в Ubuntu вместо этого используют чистку

sudo apt-get purge phpmyadmin 

Я сделал что-то не так? Любые последствия, о которых я должен знать (в конце концов, это мой рабочий сервер). Все ли биты phpmyadmin действительно удалены через dpkg -P?

Houman
источник
На странице руководства dpkg написано «-P, --purge package», поэтому -P означает «очистка», так что, на мой взгляд, это должно быть то же самое. Я лично использую 'apt-get purge'
hytromo

Ответы:

5

dpkgи apt-get2 разных способа установки программного обеспечения. В основном, apt-get, aptitude и synaptic построены на основе программы управления пакетами Debian dpkg. Все они выполняют одну и ту же основную функцию - управление пакетами, но имеют некоторые дополнительные функции. Одна из дополнительных возможностей apt-get заключается в том, что он устанавливает зависимости, а dpkg - нет.

Относительно -p / purge ...

-PВ dpkgпомощи --purgeи удалит все, включая setttings и конфигурационные файлы. Из руководства:

-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

То же самое purgeв 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).

В основном это тот же вариант. Имейте в виду: удаление зависимостей не происходит с dpkg. apt-get удаляет зависимости

Документация из комментария Лекенштейна:

Rinzwind
источник
+1 собирался написать аналогичный ответ. Документация: debian.org/doc/manuals/debian-faq/ch-pkgtools.en.html . Зависимость должна быть выделена. Пример: удаление php5также приведет phpmyadminк удалению (при условии, что других PHP SAPI нет). aptможет справиться с этим, dpkgне может сделать это сам.
Лекенштейн
Отличный лекенстейн. Все еще смотрел в (потому что вещи зависали меня). Добавил его в :) Не стесняйтесь редактировать мой ответ, если у вас есть больше: D
Rinzwind
Это нормально :) Если кто-то сталкивается с проблемой зависимости после dpkgнепосредственного использования , он (она) может исправить ее sudo apt-get install -f(как это было предложено dpkg)
Lekensteyn
Спасибо всем за ваш совет. Так что мне сделать sudo apt-get install -f phpmyadminв моем случае, чтобы убедиться, что зависимости удалены? Что делать, если зависимости являются общими?
Хоуман
@Kave Зависимости, не установленные вручную, будут удалены, если от них не зависят установленные пакеты.
нанофарад