Diferença entre limpeza e dpkg -P?

9

Eu tive que desinstalar o phpmyadmin do servidor de produção e pesquisei no Google e usei isso:

sudo dpkg -P phpmyadmin

Bem, isso funcionou bem, mas parece que todo mundo no Ubuntu está usando uma limpeza

sudo apt-get purge phpmyadmin 

Eu fiz alguma coisa errada? Quaisquer conseqüências que eu deva estar ciente (afinal, é o meu servidor de produção). Todos os bits do phpmyadmin são realmente desinstalados através do dpkg -P?

Houman
fonte
Na página de manual do dpkg, ele diz "-P, --purge package", então -P representa 'purge', então, como penso nisso, deve ser a mesma coisa. Eu pessoalmente uso 'apt-get purge'
hytromo

Respostas:

5

dpkge apt-getexistem 2 maneiras diferentes de instalar o software. Basicamente, apt-get, aptitude e synaptic são construídos sobre o programa de gerenciamento de pacotes dpkg do debian. Todos eles executam a mesma função básica - gerenciamento de pacotes, mas possuem alguns recursos extras. Um dos recursos extras do apt-get é que ele instala dependências e o dpkg não.

Em relação à limpeza -p / ...

O -Pin dpkgsignifica --purgee removerá tudo, incluindo configurações e arquivos de configuração. Do 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

O mesmo vale para purgedentro 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).

Basicamente, é a mesma opção. Lembre-se: a remoção de dependências não acontece com o dpkg. O apt-get remove dependências

Documentação de comentário de Lekensteyn:

Rinzwind
fonte
O +1 estava prestes a escrever uma resposta semelhante. Documentação: debian.org/doc/manuals/debian-faq/ch-pkgtools.en.html . A coisa da dependência deve ser destacada. Exemplo: remover php5também fará phpmyadmincom que seja removido (supondo que não haja outros SAPIs PHP). aptpode lidar com isso, dpkgnão pode fazer isso sozinho.
Lekensteyn
Excellent lekensteyn. Ainda estava olhando para (porque as dependências que coisa estava me incomodando). Adicionado em :) Sinta-se livre para editar minha resposta se você tiver mais: D
Rinzwind 30/04/12
É bom :) Se alguém bate o problema de dependência depois de usar dpkgdiretamente, ele (a) pode corrigi-lo com sudo apt-get install -f(como sugerido por dpkg)
Lekensteyn
Obrigado a todos por seu conselho. Então, faço um sudo apt-get install -f phpmyadminno meu caso para garantir que as dependências sejam excluídas? E se as dependências forem compartilhadas?
Houman
As dependências do @Kave não instaladas manualmente serão removidas quando nenhum pacote instalado depender delas.
Nanofarad