Como você pode remover completamente um pacote?

188

Estou tentando fazer uma instalação limpa do octave3.2pacote.

Para fazer isso, eu o removi e tentei reinstalá-lo.

Quando eu reinstalei, ocorreu um erro. Pode ser um bug no pacote, mas quero ter certeza de que tudo foi removido para que eu possa fazer uma instalação limpa.

É o suficiente para fazer isso?

sudo apt-get --purge remove octave3.2
user1012451
fonte
Pode-se reinstalar o pacote e prestar atenção à lista de pacotes OU dependências ..?
user309924
Recomendado para visitar isto
Pandya

Respostas:

185

Esta é uma resposta muito geral à pergunta sobre os efeitos da remoção de pacotes. Para obter conselhos específicos à sua situação, você precisará editar sua pergunta para incluir informações adicionais - em particular, o texto completo e exato da mensagem de erro que você está recebendo.

A remoção de pacotes com ou os removerá e todos os seus arquivos de configuração global (ou seja, em todo o sistema). Geralmente é isso que as pessoas querem dizer quando falam em remover completamente um pacote.sudo apt purge ...sudo apt --purge remove ...

Mas isso não significa que seu sistema seja o mesmo de antes da instalação do pacote. Em particular:

  • Isso não remove os pacotes que foram instalados como dependências, quando você instalou o pacote que está removendo agora. Supondo que esses pacotes não sejam dependências de nenhum outro pacote e que você não os marcou como instalados manualmente, é possível remover as dependências com sudo apt autoremoveou (se você deseja excluir também os arquivos de configuração em todo o sistema) sudo apt --purge autoremove.

  • Isso não remove os arquivos de configuração que não são do sistema. Especificamente, ele não remove a configuração específica do usuário:

    • Ele não remove os arquivos e diretórios de configuração localizados nos diretórios pessoais dos usuários (ou no .configsubdiretório dos diretórios pessoais), criados pelo software fornecido pelo pacote.

      • Se esses arquivos / pastas não estiverem armazenados .config, eles geralmente começam com .eles próprios. De qualquer forma, você pode vê-los lsusando o sinalizador -aou -A, e pode vê-los no Nautilus e na maioria dos outros navegadores / gerenciadores de arquivos, pressionando Ctrl+ Hou indo em Exibir > Mostrar arquivos ocultos .
    • Ele não reverte as alterações feitas nos arquivos de configuração específicos do usuário existentes.

    • Ele não remove nova gconfou dconfchaves, ou reverter qualquer gconfou dconfalterações de configuração.

  • O uso purgeou em --purge removevez de removenão reverte as alterações nos arquivos de configuração existentes no sistema, fornecidos por outros pacotes ou criados manualmente pelo usuário. No entanto, algumas vezes essas alterações são desfeitas com a desinstalação do pacote (independentemente de ser um purgee não um remove).

Eliah Kagan
fonte
61

Use o comando:

sudo apt-get purge --auto-remove packagename

Ele limpará os pacotes necessários junto com as dependências instaladas com esses pacotes. A --auto-removeopção funciona de forma semelhante a sudo apt-get autoremove.

pl_rock
fonte
11
isso resolveu meu problema, especialmente com certbot
T.Todua
7

Primeiro, verifique o nome do pacote que deseja remover:

dpkg --list

Em seguida, remova o pacote fornecido

sudo apt-get remove package_name

Limpe qualquer código relacionado

sudo apt-get purge package_name

Em seguida, remova automaticamente

sudo apt-get autoremove

Finalmente, faça uma limpeza para verificar se tudo foi removido corretamente

sudo apt-get clean

Você gostaria de verificar na lista de pacotes se o que você deseja remover não está mais listado, mas é opcional.

Tenha um bom dia,

user2777677
fonte
4

Melhor acompanhar os pacotes de dependência extras instalados enquanto você está instalando um.

The following extra packages will be installed: 
    libgssglue1 libnfsidmap2 libtirpc1 nfs-common rpcbind

Se você remover apenas o pacote original, o pacote de dependência poderá permanecer.

Então você tem que remover manualmente cada um usando

apt-get purge package_name
Harikrishnan
fonte
11
Como posso obter uma lista desses pacotes se meu console não rolar para cima o suficiente
Luke Taylor
@LukeTaylor apt-get install package_name > output Então, less output para ver toda a saída com rolagem.
Harikrishnan
2

Em vez de remover manualmente os pacotes dependentes instalados automaticamente, use o seguinte:

 zanfilip @ zanfilip-VPCEB3L0E: ~ / jp / eclipse $ sudo apt-get --purge autoremove
    Lendo listas de pacotes ... Concluído
    Construindo árvore de dependência       
    Lendo informações do estado ... Concluído
    Os seguintes pacotes serão REMOVIDOS
      libupstart1 * linux-headers-3.16.0-30 * linux-headers-3.16.0-30-generic *
      linux-image-3.16.0-30-genérico * linux-image-extra-3.16.0-30-genérico *
    0 para atualizar, 0 para instalar recentemente, 5 para remover e 23 para não atualizar.
    Após esta operação, 279 MB de espaço em disco serão liberados.
    Você quer continuar? [S / n]

zanfilip
fonte
2

Se você deseja remover alguns pacotes específicos, pode usar estes comandos:

dpkg --get-selections | grep PACKAGE_NAME | awk '{ print $1}'| xargs apt-get -y --purge autoremove

não esqueça a opção "-y" porque, caso contrário, o apt-get continuaria perguntando sobre a remoção de pacotes individuais e não removerá nada.

Kerem Ersoy
fonte
2
Isso pode ser útil, mas também destrutivo: ele pode facilmente corresponder a um pacote que você realmente não deseja remover e excluir sua configuração sem confirmação! Felizmente, desde nomes de pacotes nunca contêm um espaço, podemos dar a volta e soltar o -y: apt-get --purge autoremove $(dpkg --get-selections | grep PACKAGE_NAME | awk '{ print $1}'). Isso seria um pouco mais seguro.
joeytwiddle
Talvez seja mais seguro executar o comando como: dpkg --get-selections | grep PACKAGE_NAME | awk '{print $ 1}' Primeiro e depois executá-lo com xargs é uma prática recomendada para que o usuário veja o que seria excluído como resultado do comando.
Kerem Ersoy
0

Outra opção que você tem, é usar o debfosterpacote. Isso irá localizar e sugerir interativamente pacotes para remoção (e eliminação) junto com pacotes dependentes.

sudo apt install debfoster
sudo debfoster
# and optionally remove debfoster too
sudo purge debfoster
MacroMan
fonte