Como remover todos os pacotes com DNF dos quais nenhum outro pacote depende

Como remover todos os pacotes com DNF dos quais nenhum outro pacote depende

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:

  1. Descubra quais dos pacotes <a>e <b>ainda <c>são necessários para outros pacotes.
  2. dnf removetodos 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 --leavesopçã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-cleanupcomando de yum-utils. Mas, com DNF, ele está integrado como dnf autoremovecomando. 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 listcomando 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.

informação relacionada