在理想的情况下,配置puppet以安装open-vm-tools
应当很简单:
class vm-tools {
package { 'open-vm-tools':
ensure => installed
}
package { 'open-vm-dkms':
ensure => installed
}
}
但是,这打开了一个丑陋的依赖依赖罐。它安装X,显然不属于服务器。从Ubuntu 10.04开始,这些软件包最终都推荐了open-vm-toolbox
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
推荐的软件包始终默认安装。在安装称为“ CLI工具”的程序包时,默认情况下默认情况下不需要安装X依赖项。
出于这个原因,针对Debian的功能请求立即被拒绝,但是在Ubuntu中并没有表现出冷静的头脑。似乎在上周内,已经有人意识到这是一个不明智的更改,但这对下一个LTS版本的发布没有帮助。
安装推荐的软件包的行为很轻松地用在命令行上禁用--no-install-recommends
选项,而是通过木偶有这样做没有支持,以及纠结 混乱的门票请求支持,并没有在3年内远了。
另一个选择是通过禁用整个系统中推荐的软件包apt.conf
,这是对软件包行为的重大更改,其影响远远超出了我的期望。
我已经辞职了,以懒惰的方式去做。
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',
}
但这显然是“做错了”。我是否缺少某种可以按预期方式工作的东西,或者这是解决此问题的最佳方法?
apt
提供程序实际上是Ubuntu和Debian的默认提供程序,请参阅此文件的第13行。