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

5

Eu gostaria de remover a maioria dos pacotes da categoria X11 do meu sistema. No entanto, alguns desses pacotes são dependentes do pacote 'beaglebone'. Como posso pedir ao aptitude para remover tudo na categoria X11, com exceção dos pacotes dependentes de 'beaglebone'?

Você pode ver abaixo que ele recomenda 'beaglebone' como um dos pacotes que devem ser desinstalados com o risco de ser quebrado.

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

    
por Nexxuss 14.06.2014 / 23:48

2 respostas

4

A resposta curta é:

aptitude remove '~sX11 ! ~Rbeaglebone'

No entanto, neste tipo de situação (há um lote de coisas que dependem do X11!), eu recomendo usar o resolvedor interativo. Para fazer isso, adicione a opção --schedule-only ao acima e execute aptitude novamente sem argumentos. Você também pode ter que adicionar -o Aptitude::Auto-Fix-Broken=false a um ou ambos os comandos (se ainda não estiver nas suas configurações), mas não o faço. Acho que você precisa, tanto quanto eu posso ver a resolução automática só acontece quando você pressiona g na interface.

Uma vez que você tenha a interface ncurses em execução, pressione e para examinar a primeira solução e examinar as remoções adicionais. Se você vir algum que não queira, use as teclas de seta para selecioná-lo e pressione r para rejeitar a ação. Pressione . para carregar a próxima solução, ela deve agora 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.

    
por 15.06.2014 / 12:05
0

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

$ sudo apt-mark hold <package>

ou

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

O primeiro faz uso do recurso apt-mark e seu hold .

   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 faz uso de dpkg para marcar um pacote como em "hold".

   --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.
    
por 15.06.2014 / 02:47