Diferencia entre purga y dpkg -P?

9

Tuve que desinstalar phpmyadmin del servidor de producción y busqué en Google y usé esto:

sudo dpkg -P phpmyadmin

Bueno, esto funcionó bien, pero parece que todos los demás en Ubuntu están usando una purga

sudo apt-get purge phpmyadmin 

¿He hecho algo mal? Cualquier consecuencia que debería tener en cuenta (es mi servidor de producción después de todo) ¿Están todos los bits de phpmyadmin realmente desinstalados a través de dpkg -P?

Houman
fuente
Desde la página de manual de dpkg, dice "-P, --purge package", por lo que -P significa 'purga', por lo que, según pienso, debería ser lo mismo. Yo personalmente uso 'apt-get purge'
hytromo

Respuestas:

5

dpkgy apt-getson 2 formas diferentes de instalar software. Básicamente, apt-get, aptitude y synaptic se construyen sobre el programa de gestión de paquetes dpkg de debian. Todos realizan la misma función básica: administración de paquetes, pero tienen algunas características adicionales. Una de las características adicionales de apt-get es que instalará dependencias y dpkg no.

En cuanto a la -p / purga ...

El -Pde dpkgmedios --purgey eliminará todo, incluyendo setttings y archivos de configuración. Del manual:

-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

Lo mismo ocurre con 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).

Básicamente es la misma opción. Eso sí: la eliminación de dependencias no ocurre con dpkg. apt-get elimina las dependencias

Documentación del comentario de Lekensteyn:

Rinzwind
fuente
+1 estaba a punto de escribir una respuesta similar. Documentación: debian.org/doc/manuals/debian-faq/ch-pkgtools.en.html . Lo de la dependencia debe resaltarse. Ejemplo: la eliminación php5también hará phpmyadminque se elimine (suponiendo que no haya otros SAP SAP PHP). aptpuede manejar esto, dpkgno puede hacerlo por sí mismo.
Lekensteyn
Excelente lekensteyn. Todavía estaba buscando (porque las cosas de dependencias me molestaban). Lo agregó en :) Siéntase libre de editar mi respuesta si tiene más: D
Rinzwind
Está bien :) Si alguien golpea el problema de la dependencia después de usarlo dpkgdirectamente, puede corregirlo sudo apt-get install -f(según lo sugerido dpkg)
Lekensteyn
Gracias a todos por sus consejos. Entonces, ¿hago un sudo apt-get install -f phpmyadminen mi caso para asegurarme de que se eliminen las dependencias? ¿Qué pasa si se comparten las dependencias?
Houman
Las dependencias de @Kave no instaladas manualmente se eliminarán cuando ningún paquete que esté instalado dependa de ellas.
nanofarad