4

在一个干净的 Debian 系统上——没有安装 Rubygem——我想安装一个带有 Puppet 的 Rubygem 包(版本 2.7.13)。所以这个包有“gem”作为包提供者。

到目前为止,这是我的清单(我保持简单):

# test.pp
Package { ensure => 'installed' } 

package { 
  'rubygems' : 
    name => 'rubygems',
}

package {
  'libldap-ruby1.8' :
    name => 'libldap-ruby1.8',
}

package { 'libldap2-dev' : 
   name => 'libldap2-dev', 
}

package { 'libsasl2-dev' : 
  name => 'libsasl2-dev', 
}

package { 'libsasl2-modules-ldap' : 
  name => 'libsasl2-modules-ldap', 
}

# My Rubygem, with Provider type 'gem'
package { 
  'ruby-ldap' : 
    name => 'ruby-ldap',
    provider => 'gem',
}

Package [ 'rubygems' ] -> Package [ 'ruby-ldap' ] 
Package [ 'libldap2-dev' ] -> Package [ 'ruby-ldap' ]
Package [ 'libsasl2-modules-ldap' ] -> Package [ 'ruby-ldap' ]

当我测试这个清单(使用puppet apply --noop test.pp)时,我得到以下输出:

err: /Stage[main]//Package[ruby-ldap]: Provider gem is not functional on this host

我在网上挖掘并找到了一些关于 Puppet+Rubygems 的信息(例如this),但这些信息都没有帮助我解决我的问题,因为没有一个提供了一些代码的真正解决方案。

我还尝试使用类和阶段(在 gem 安装之前的阶段中进行 ruby​​gem 安装),但我总是得到Provider gem-error(但也许我只是以错误的方式使用了阶段)。

谁能给我一个工作清单,在没有 Rubygems 的系统上安装 ruby​​gems 和任何 ruby​​gem,或者至少提供如何到达那里的最终提示?

4

1 回答 1

0

虽然我的问题应该用 Puppet 2.7.8 解决(我使用的是 2.7.13) - 看到这个问题- 我很确定我在 2.7.13 中遇到了这个问题。

我在另一台安装了 2.7.14 的机器上重新尝试了这个,我可以成功地安装 Rubygem 和带有 Puppet 的 Rubygem 包。

于 2012-05-20T15:17:15.140 回答