Removendo as pastas do aplicativo manualmente para desinstalar um pacote

1

Se eu removi um aplicativo com synaptic, (um que instalei com terminal, usando o comando dpkg -i ), por que ele é removido do menu (o ícone do aplicativo desaparece), mas ainda há a pasta completa com todos os arquivos no HDD?

Não sei por que não posso simplesmente remover a pasta inteira como faria no OSX. O que acontece depois de usar o comando dpkg -r / -P com terminal ou o que a synaptic também faz?

Existe algum motivo para eu não remover apenas a (s) pasta (s) manualmente?

Alguém pode explicar o que está acontecendo nos bastidores, para que iniciantes como eu possam entender o que estão fazendo (errado)?

Atualizar

Eu tentei desinstalar o ethereum com o comando dpkg -r e não estava funcionando (nome errado) ??

Suponho que a desinstalação do aplicativo ethereum com o Synaptic foi boa. O Synaptic encontrou e depois o removeu. Eu também acredito que todos os dados relevantes foram removidos também.

A pasta oculta do ethereum que ainda está no meu disco rígido agora, acho que é apenas os dados já baixados, para que o aplicativo possa ser atualizado separadamente sem perder o blockchain e os dados da carteira, certo? Acho que posso excluir esses arquivos agora manualmente, porque não preciso mais deles!

    
por stevethemechanic 06.08.2017 / 10:39

1 resposta

0

Veja algumas informações de man dpkg , que explica o que dpkg -r e dpkg -P fazem. Remover um pacote com comandos APT ou synaptic envolve os mesmos procedimentos; Até onde eu sei, utilitários de gerenciamento de pacotes de alto nível como APT e synaptic simplesmente chamam DPKG como um subprocesso para remover ou instalar arquivos. Sua função é calcular e resolver dependências e fornecer uma interface aprimorada.

-r, --remove package...|-a|--pending
          Remove  an  installed  package. This removes everything except conffiles,
          which may avoid having to reconfigure the package if it is reinstalled 
          later (conffiles are configuration files that are listed in the 
          DEBIAN/conffiles control file)[...]
       Removing of a package consists of the following steps:
          1. Run prerm script
          2. Remove the installed files
          3. Run postrm script

-P, --purge package...|-a|--pending
          Purge an installed or already removed package. This removes everything, 
          including conffiles. [...]

          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.
     Purging of a package consists of the following steps:
          1. Remove the package, if not already removed.
          2. Run postrm script.

Como você pode ver, esses comandos excluem todos os arquivos do aplicativo, com exceção dos arquivos de configuração. Mesmo o -P / --purge pode nem sempre remover os arquivos de configuração local dos diretórios home dos usuários em alguns casos, portanto, esses arquivos podem precisar ser excluídos manualmente se não forem mais necessários. Quando você menciona os diretórios de aplicativos remanescentes após a desinstalação, provavelmente você está falando sobre um diretório de configuração local. *

Em minha resposta para uma questão um pouco relacionada eu discuti como APT, DPKG e outros gerenciadores de pacotes instalados em um sistema Ubuntu armazenar informações sobre os arquivos fornecidos por um pacote em um formato legível por humanos.

Essa resposta também tenta explicar por que usar um gerenciador de pacotes para lidar com o gerenciamento de pacotes é substancialmente mais fácil do que tentar fazer isso manualmente; em um sistema de arquivos típico do Linux, os arquivos fornecidos pelos aplicativos estão espalhados por todo o lugar. Embora isso possa parecer confuso, há uma grande vantagem de segurança para os arquivos de aplicativos que estão nos diretórios do sistema de propriedade do root, aos quais os usuários não podem gravar. Além disso, se precisarmos descobrir onde estão os arquivos relacionados a um pacote, podemos usar vários utilitários de linha de comando para encontrá-los.

Você queria saber se excluir todos os arquivos de um aplicativo para desinstalá-lo é uma má ideia e, em caso afirmativo, por quê. Minha resposta a esta pergunta é YES , em geral é uma idéia muito ruim, porque a exclusão dos arquivos instalados é apenas parte do trabalho feito pelo gerenciamento de pacotes quando você os chama para executar uma desinstalação. O banco de dados DPKG armazena informações sobre quais pacotes estão instalados e instaláveis, e todos os relacionamentos de dependência entre eles. Se os arquivos de pacote forem removidos sem o banco de dados ser atualizado, a resolução de dependência não será executada, o software que depende do software silencioso falhará, os pacotes serão quebrados, a limpeza feita pelos scripts prerm e postrm dpkg chamadas para cada pacote que ele remove não será feito, potencialmente deixando links simbólicos quebrados e arquivos de configuração incorretos por aí, e tudo será horrível.

TL; DR
Os gerenciadores de pacotes existem por boas razões. Use-os sempre que possível, em vez de tentar fazer você mesmo.

* No entanto, às vezes, o software pode ser instalado (e ter um único diretório) sem que o DPKG saiba nada sobre ele. Por exemplo, você pode baixar um aplicativo de terceiros, extrair o arquivo e executar o arquivo executável. Para "desinstalar" este software, você pode simplesmente deletar os arquivos extraídos. Outro exemplo é a instalação usando sudo make install após a compilação da origem, o que deixa o diretório de origem para trás. Desinstalar tal software pode ser uma dor de cabeça se os desenvolvedores não configurarem as coisas de modo a habilitar sudo make uninstall ou não incluir um manifesto de arquivo! Uma maneira de contornar isso é criar um pacote deb após make , o que pode ser feito com checkinstall .

    
por Zanna 09.08.2017 / 12:17