Eu tenho um cenário em que gostaria de remover um conjunto de pacotes que podem ou não estar instalados, e gostaria do apt-get para remover aqueles que são e ignoram silenciosamente aqueles que não são. Algo como:
apt-get remove foo bar baz
que, se foo e bar fossem instalados, mas o baz não estivesse, removeria o foo e o bar sem reclamar do baz. Existe uma maneira de fazer isso?
As coisas que tentei que não funcionaram, com cups-dbg como meu bode expiatório realmente instalado, a ser removido:
jcp@a-boyd:~$ sudo apt-get remove -y cups-dbg bogus-package
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package bogus-package
jcp@a-boyd:~$ sudo apt-get remove --ignore-missing cups-dbg bogus-package
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package bogus-package
jcp@a-boyd:~$ sudo apt-get remove --fix-broken cups-dbg bogus-package
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package bogus-package
Eu sei que poderia fazer isso com um script de shell e um pouco de dpkg --list
mágica, mas gostaria de evitar qualquer complexidade que não seja absolutamente necessária.
Respostas:
Voltar para a ferramenta de nível inferior, como o dpkg, é uma opção?
Para remover os arquivos de configuração de pacotes, use a limpeza como abaixo
fonte
Eu uso
apt-get remove --purge
(akaapt-get purge
) para a dependência a seguir com uma lista de pacotes. Para lidar com pacotes que não existem, filtre pacotes que não estão instalados com o seguinte script.fonte
Para o Debian ≤ 9, é possível usar apenas ao
aptitude
invés deapt-get
:O Aptitude imprime avisos, mas continua a remover seus pacotes:
Se você deseja limpar (excluir arquivos de configuração do pacote) em vez de remover (manter os arquivos de configuração), observe que
aptitude
apenas limpa os pacotes fornecidos diretamente, enquanto as dependências não utilizadas são removidas apenas. No entanto, você pode limpar todos os pacotes removidos em uma segunda etapa:fonte
bogus-package
justo tinha o nome errado. então, caso tivéssemos 500 pacotes, seria melhor analisar também os pacotes falsos e fazer alguns truques (por exemplo, números após o nome da falta etc.). ..Couldn't find any package whose name or description matched 'QUX' Unable to apply some actions, aborting
Outro pequeno liner de 2 linhas, se alguém precisar usar o apt:
Explicação:
fonte