如何使用人偶和.deb文件更新软件包


27

我试图从本地源deb文件中找出使用puppet更新/升级deb软件包的正确方法。我当前的配置看起来像这样...

class adobe-air-2-0-4 {

  file { "/opt/air-debs":
    ensure => directory
  }

  file { "/opt/air-debs/adobeair-2.0.4.deb":
    owner   => root,
    group   => root,
    mode    => 644,
    ensure  => present,
    source  => "puppet://puppet/adobe-air-2-0-4/adobeair-2.0.4.deb"
  }

  package { "adobeair":
    provider => dpkg,
    ensure => installed,
    source => "/opt/air-debs/adobeair-2.0.4.deb"
  }

}

我首先将deb文件复制到客户端计算机,然后在提供程序设置为'dpkg'的情况下使用'package'。这可行,并且我安装了正确的版本。

我的问题是将来更新此软件包的正确方法是什么。我可以简单地更改源文件,然后puppet会知道它是另一个版本并更新此软件包吗?puppet如何确定其安装的软件包的版本与源deb文件的版本?

我是puppet的新手,因此,如果您有改进我现有配置的建议,将不胜感激。

Answers:


36

我也将这个问题发布到users用户组上,这是我的回信。

如果添加,请确保最新,它将根据当前安装的软件包检查源文件,如果最新,则安装新的软件包。我仍然不确定您将如何回滚到较旧的版本,但这似乎现在可以解决我的问题。

package { "puppet-dashboard":
 provider => dpkg,
 ensure   => latest,
 source   => "/tmp/puppet-dashboard_1.0.4rc2-1_all.deb"
}

这是指向人偶用户组帖子的链接... http://groups.google.com/group/puppet-users/browse_thread/thread/53f5e7119012fb3e/59e8596701fcaf3f


未测试,但如果使用apt作为提供程序。确保=>“1.0.4rc2-1_all”:例如-你可以改变最新的字符串版本号
benlumley

检查了docs.puppetlabs.com/references/latest/type.html#package-上面我的推荐似乎无效,它说dpkg无法版本化。
benlumley 2011年

好吧,@ benlumley,apt-get是可版本控制的,而dpkg(apt-get所基于的)不是。因此,当您要像这样进行版本控制时,很难将两者混为一谈。因此,在这种情况下,最好建立一个迷你存储库并对其进行适当管理(这是debian系统上的默认提供程序)
Aktau
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.