Instalar open-vm-tools en Ubuntu a través de Puppet; ¿Cuál es el mal menor?

9

En un mundo ideal, configurar Puppet para instalar el open-vm-toolsdebería ser tan simple como esto:

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

Pero, eso abre una lata fea de dependencia; instala X, que obviamente no pertenece a los servidores. A partir de Ubuntu 10.04, estos paquetes terminan recomendando el open-vm-toolboxpaquete de herramientas 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

Los paquetes recomendados siempre se instalan por defecto. Claramente, no es deseable instalar las dependencias X de forma predeterminada al instalar un paquete que se describe como "Herramientas CLI".

La solicitud de características contra Debian fue rechazada inmediatamente por este motivo, pero las cabezas más frías no prevalecieron en Ubuntu . Parece que en la última semana, hay algún reconocimiento de que este fue un cambio desaconsejado , pero eso no ayuda hasta que llegue el próximo lanzamiento de LTS.

El comportamiento de instalar los paquetes recomendados es fácilmente lo suficientemente desactivado en la línea de comandos con la --no-install-recommendsopción, pero a través de marionetas no hay apoyo para hacer esto, y una enmarañada lío de entradas que solicitan que el apoyo no han ido mucho más en 3 años.

La otra opción es simplemente deshabilitar los paquetes recomendados en todo el sistema a través de apt.conf, lo cual es un cambio masivo en el comportamiento del paquete con impactos que van más allá de lo que me gustaría.

Me resigné a hacerlo de manera perezosa;

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',
}

Pero esto es claramente "hacerlo mal" . ¿Me estoy perdiendo algo que haga que todo funcione de la manera en que se supone que debe hacerlo, o esta es la mejor solución alternativa a este problema?

Shane Madden
fuente

Respuestas:

3

El error 1766 indicó que el proveedor aptitude instala los paquetes recomendados, mientras que el proveedor apt no lo hace.

Si eso es correcto (no lo he verificado yo mismo), entonces lo siguiente puede funcionar de manera más limpia:

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

Adaptado de Puppet Type Reference, sección "paquete" .


Edite después de una investigación adicional: dado que el proveedor apt es el predeterminado en Ubuntu y Debian, use el proveedor aptitude para estos paquetes y agregue un adecuado ~/.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";';
}

No es perfecto, pero más conciso que una línea ejecutiva gigante.

Mike Renfro
fuente
No hay tanta suerte; x11-common y todos sus amigos terminaron instalados. Ese informe de error parece implicar que hay un argumento que se puede agregar para controlar el comportamiento con el proveedor de apt ... pero no puedo encontrar ninguna información sobre cómo se supone que debe hacerse. Ese informe de error puede estar desactualizado, pero, al menos en la actualidad, parece que el aptproveedor es el predeterminado para Ubuntu y Debian, consulte la línea 13 de este archivo .
Shane Madden
Ver edición arriba.
Mike Renfro