通过Puppet在Ubuntu中安装open-vm-tools; 小恶魔是什么?


9

在理想的情况下,配置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-toolboxGUI工具软件包:

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

但这显然是“做错了”。我是否缺少某种可以按预期方式工作的东西,或者这是解决此问题的最佳方法?

Answers:


3

错误1766指示aptitude提供程序安装了推荐的软件包,而apt提供程序未安装。

如果正确(我自己尚未验证),则以下操作可能会更干净:

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

改编自Puppet类型参考的“程序包”部分


经过进一步调查后进行编辑:由于apt提供程序是Ubuntu和Debian上的默认提供程序,因此请对这些软件包使用aptitude提供程序,并添加一个适合~/.aptitude/configroot用户的文件。

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";';
}

虽然不完美,但比起大型的执行人员线来说更为简洁。


没有这种运气;x11-common及其所有朋友安装完毕。该错误报告似乎暗示可以添加一个参数来控制apt提供程序的行为...但是我找不到有关应该如何执行操作的任何信息。该错误报告可能已过时,但是,至少在目前看来,该apt提供程序实际上是Ubuntu和Debian的默认提供程序,请参阅此文件的第13行。
Shane Madden

请参阅上面的编辑。
Mike Renfro

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.