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

7

Meu problema

Eu queria criar um software manualmente. Então eu instalei todas as suas dependências usando dnf install <a> <b> <c> .

Depois, não precisei mais desse software e, por isso, também queria desinstalar todas as dependências dele. Mas yum remove <a> <b> <c> removeria todos os pacotes, mesmo que outro pacote instalado ainda dependa de um desses pacotes ( <b> , por exemplo).

O que eu tentei

  • Eu li o man dnf , mas não consegui encontrar um comando adequado.

Minha pergunta

Qual é a maneira mais simples de:

  1. Descubra quais dos pacotes <a> , <b> e <c> ainda são necessários para outros pacotes.
  2. dnf remove todos os pacotes da minha lista de pacotes que eu não preciso mais ( <a> , <b> e <c> ), mas não remova os pacotes do ponto (1.) .

Alguma ideia?

Obrigado pela sua ajuda. Se algo não estiver claro, por favor, comente e eu adicionarei mais detalhes.

    
por Franz-Josef Christbaumer 20.07.2015 / 22:08

2 respostas

1

Para o Fedora você pode usar limpeza de pacotes , por exemplo, com a opção --leaves .

--leaves List leaf nodes in the local RPM database. Leaf nodes are RPMs that are not relied upon by any other RPM.

    
por 21.07.2015 / 11:09
8

Com o Yum, você usaria o comando package-cleanup de yum-utils . Mas, com o DNF, ele é incorporado como o comando dnf autoremove . De os documentos :

dnf [options] autoremove

Removes all “leaf” packages from the system that were originally installed as dependencies of user-installed packages but which are no longer required by any such package.

Note que você também pode usar o comando dnf list para ver quais pacotes seriam removidos, antes de executar o automremove, com

dnf list autoremove

Observe também que o DNF tem outra diferença de comportamento que deve ajudá-lo em situações semelhantes (mas não no caso exato). Se o seu software principal foi instalado pelo DNF (e não 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 t usado para qualquer outra coisa.

    
por 21.07.2015 / 14:44