Evitando que pacotes específicos sejam instalados no Debian

4

Eu tenho vários servidores Debian e quero garantir que um servidor X nunca seja instalado neles. Às vezes, quando estou instalando um pacote, ele tem dependências que incluem o X. Existe alguma boa maneira de garantir que o servidor X nunca seja instalado? Eu prefiro que as bibliotecas X11 também não sejam instaladas, já que o encaminhamento do X nunca deve ser ativado.

    
por Craig Buchek 01.06.2009 / 20:15

3 respostas

9

Colocar um pacote em espera não funciona (muito bem) para conseguir isso. Não cobre todas as ferramentas de maneira satisfatória. Por exemplo, o aptitude na linha de comando ignora completamente a invocação anterior de aptitude hold somepackage , a instalação de um pacote também instala as dependências, mesmo que estejam em espera.

A melhor maneira na minha opinião é criar um pacote falso (chamado por exemplo "unwanted-pkg") que entre em conflito com todos os pacotes que você não quer e instalá-lo (com dpkg -i ). E então você coloca este pacote em espera para evitar sua remoção.

Você pode usar uma ferramenta como "equivs" para criar facilmente o pacote falso. Veja equivs-control  e equivs-build . Um campo de conflitos se parece com isso:

Conflicts: xserver-xorg-video-2, xserver-xorg-core

Você pode entrar em conflito com as dependências de baixo nível comuns a todos os pacotes indesejados para evitar listar cada pacote individual (ou usar um pacote virtual como xserver-xorg-video-2).

Observe que a fixação não funciona para resolver esse problema. Se você usar aptitude install xorg , ele instalará muitos pacotes xserver-xorg- * apesar da marcação negativa. BTW, para o pinning ser reconhecido pelo apt (verifique com apt-cache policy <package> ) você tem que usar uma sintaxe como esta:

$ cat /etc/apt/preferences
Package: xserver-xorg-video-vga
Pin: version *
Pin-Priority: -100
$ LANG=C apt-cache policy xserver-xorg-video-vga
xserver-xorg-video-vga:
  Installed: (none)
  Candidate: 1:4.1.0-8
  Package pin: 1:4.1.0-8
  Version table:
     1:4.1.0-8 -100
        500 http://localhost lenny/main Packages

O uso de um regexp no campo Package não funciona (exceto para "*" sozinho, caso em que você tem alguns outros requisitos no campo Pin).

    
por 02.06.2009 / 09:35
4

link

Veja a seção 7.12, "Como coloco um pacote em espera?"

Se você 'mantém' um pacote atualmente desinstalado, ele nunca será instalado.

    
por 01.06.2009 / 21:23
2

Você pode usar o ajuste pin para impedir que determinados pacotes sejam instalados. Tente colocar isso em /etc/apt/preferences :

Package: xserver-xorg*
Pin-Priority: -100

Deve impedir a instalação de todos os pacotes xserver-xorg *.

    
por 02.06.2009 / 10:07