Instalando o open-vm-tools no Ubuntu via Puppet; qual é o mal menor?

9

Em um mundo ideal, configurar o fantoche para instalar o open-vm-toolsdeve ser tão simples quanto isto:

class vm-tools {
    package { 'open-vm-tools':
        ensure => installed
    }
    package { 'open-vm-dkms':
        ensure => installed
    }
}

Mas isso abre uma lata feia de dependência rasteira; ele instala o X, que obviamente não pertence aos servidores. A partir do Ubuntu 10.04, esses pacotes acabam recomendando o open-vm-toolboxpacote de ferramentas da GUI:

# apt-cache depends open-vm-dkms
open-vm-dkms
  Depends: dkms
  Depends: make
  Suggests: open-vm-toolbox
  Recommends: open-vm-tools

# apt-cache depends open-vm-tools
open-vm-tools
  Depends: libc6
  Depends: libfuse2
  Depends: libgcc1
  Depends: libglib2.0-0
  Depends: libicu44
  Depends: libstdc++6
  Recommends: open-vm-source
  Recommends: open-vm-toolbox
  Recommends: ethtool
  Recommends: zerofree

Pacotes recomendados são sempre instalados por padrão. Claramente, não é desejável instalar dependências do X por padrão ao instalar um pacote descrito como "Ferramentas da CLI".

O pedido de recurso contra o Debian foi imediatamente rejeitado por esse motivo, mas os coolers não prevaleceram no Ubuntu . Parece que, na última semana, há algum reconhecimento de que essa foi uma mudança desaconselhada , mas isso não ajuda em nada até que o próximo lançamento do LTS seja lançado.

O comportamento para instalar pacotes recomendados é facilmente o suficiente desactivada na linha de comando com a --no-install-recommendsopção, mas através de fantoche não há suporte para fazer isso, e uma emaranhada confusão de bilhetes solicitando que o apoio não ter ido longe em 3 anos.

A outra opção é apenas desativar os pacotes recomendados em todo o sistema apt.conf, o que é uma grande mudança no comportamento do pacote, com impactos que vão além do que eu gostaria.

Resignei-me a fazê-lo da maneira preguiçosa;

exec { 'open-vm-tools install':
    command => '/usr/bin/apt-get install -y --no-install-recommends open-vm-dkms open-vm-tools',
    creates => '/usr/lib/open-vm-tools',
}

Mas isso está claramente "fazendo errado" . Estou sentindo falta de algo que faria tudo funcionar da maneira que deveria, ou essa é a melhor solução alternativa para esse problema?

Shane Madden
fonte

Respostas:

3

O bug 1766 indicou que o provedor do aptitude instala pacotes recomendados, enquanto o provedor do apt não.

Se estiver correto (eu mesmo não o verifiquei), o seguinte poderá funcionar de maneira mais limpa:

package { [ "open-vm-tools", "open-vm-dkms" ]:
  ensure   => installed,
  provider => apt,
}

Adaptado de Puppet Type Reference, seção "package" .


Edite após uma investigação mais aprofundada: como o provedor apt é o padrão no Ubuntu e Debian, use o provedor aptitude para esses pacotes e adicione um adequado ~/.aptitude/configpara root.

package { [ "open-vm-tools", "open-vm-dkms" ]:
  ensure   => installed,
  provider => aptitude,
  require  => File["/root/.aptitude/config"];
}
file { "/root/.aptitude/config":
  ensure  => present,
  content => 'APT::Install-Recommends "0";';
}

Não é perfeito, mas é mais conciso do que uma linha executiva gigante.

Mike Renfro
fonte
Não tem tanta sorte; x11-common e todos os seus amigos acabaram instalados. Esse relatório de bug parece sugerir que existe um argumento que pode ser adicionado para controlar o comportamento com o provedor apt ... mas não consigo encontrar nenhuma informação sobre como isso deve ser feito. Esse relatório de bug pode estar desatualizado, mas, pelo menos atualmente, parece que o aptprovedor é o padrão para o Ubuntu e o Debian, veja a linha 13 deste arquivo .
Shane Madden
Veja a edição acima.
Mike Renfro 15/06