Aptitude - remove todos os pacotes da categoria X11, exceto dependências de um pacote específico

Aptitude - remove todos os pacotes da categoria X11, exceto dependências de um pacote específico

Gostaria de remover a maioria dos pacotes da categoria X11 do meu sistema. No entanto, alguns desses pacotes dependem do pacote 'beaglebone'. Como eu poderia pedir ao aptitude para remover tudo na categoria X11, com exceção dos pacotes dos quais o 'beaglebone' depende?

Você pode ver abaixo que ele recomenda o ‘beaglebone’ como um dos pacotes que deve ser desinstalado sob risco de ser quebrado.

    Remoção recomendada pelo Aptitude. Beaglebone está incluído.

Como posso ter certeza de que este pacote e suas dependências serão mantidos após a remoção?

Responder1

A resposta curta é:

aptitude remove '~sX11 ! ~Rbeaglebone'

No entanto, neste tipo de situação (há umamuitode coisas que dependem do X11!), recomendo usar o resolvedor interativo. Para fazer isso, adicione a --schedule-onlyopção acima e execute aptitudenovamente sem argumentos. Você também pode ter que adicionar -o Aptitude::Auto-Fix-Broken=falseum ou ambos os comandos (se ainda não estiver em suas configurações), mas não acho que você precise disso, tanto quanto Vejo que a resolução automática só acontece quando você pressiona gna interface.

Depois de ter a interface ncurses em execução, pressione epara examinar a primeira solução e ver as remoções adicionais. Se você vir algum que não deseja, use as teclas de seta para selecioná-lo e pressione rpara rejeitar a ação. Pressione .para carregar a próxima solução; agora ela deve fornecer uma solução que não inclua nenhuma de suas rejeições. Repita conforme necessário e pressione !para aceitar a solução e continuar normalmente.

Responder2

Acredito que você pode usar um dos seguintes métodos para "excluir" o pacote "beaglebone", o que deve forçar a permanência de qualquer uma de suas dependências.

$ sudo apt-mark hold <package>

ou

$ echo <package> hold | sudo dpkg --set-selections

O primeiro faz uso apt-marke seu holdrecurso.

   hold
        hold is used to mark a package as held back, which will prevent the 
        package from being automatically installed, upgraded or removed. The 
        command is only a wrapper around dpkg --set-selections and the state 
        is therefore maintained by dpkg(1) and not affected by the --file 
        option.

O segundo utiliza dpkgpara marcar um pacote como "em espera".

   --set-selections
        Set package selections using file read from stdin. This file should 
        be in the format 'package state', where state is one of install, 
        hold,  deinstall  or purge. Blank lines and comment lines beginning 
        with '#' are also permitted.

informação relacionada