
Meu problema
Eu queria construir um software manualmente. Então instalei todas as suas dependências usando dnf install <a> <b> <c>
.
Então eu não precisei mais daquele software e também queria desinstalar todas as suas dependências. Mas yum remove <a> <b> <c>
removeria todos os pacotes, mesmo que outro pacote instalado ainda dependesse de um desses pacotes ( <b>
, por exemplo).
O que eu tentei
- Eu li o arquivo
man dnf
, mas não consegui encontrar um comando adequado.
Minha pergunta
Qual é a maneira mais simples de:
- Descubra quais dos pacotes
<a>
e<b>
ainda<c>
são necessários para outros pacotes. dnf remove
todos os pacotes da minha lista de pacotes que não preciso mais (<a>
,<b>
e<c>
), mas não remova os pacotes do ponto(1.)
.
Qualquer ideia?
Obrigado pela ajuda. Se algo não estiver claro, comente e adicionarei mais detalhes.
Responder1
Para o Fedora você pode usarlimpeza de pacote, por exemplo com a --leaves
opção.
--leaves Lista nós folha no banco de dados RPM local. Os nós folha são RPMs nos quais nenhum outro RPM depende.
Responder2
Com Yum, você usaria o package-cleanup
comando de yum-utils
. Mas, com DNF, ele está integrado como dnf autoremove
comando. Deos documentos:
dnf [options] autoremove
Remove todos os pacotes “folha” do sistema que foram originalmente instalados como dependências de pacotes instalados pelo usuário, mas que não são mais necessários para nenhum desses pacotes.
Observe que você também pode usar o dnf list
comando para ver quais pacotes seriam removidos, antes de executar o próprio automremove, com
dnf list autoremove
Observe também que DNF tem outra diferença de comportamento que deve ajudá-lo em situações semelhantes (mas não no seu caso exato). Se o seu software principal foi instalado pelo DNF (em vez de fora do DNF manualmente) e você usou dnf remove
, o padrão (ao contrário do yum) é também remover quaisquer dependências que foram adicionadas apenas para esse pacote e que não são usadas para algo mais.