在一个干净的Debian系统上 - 没有安装Rubygems - 我想用Puppet(版本2.7.13)安装一个Rubygem包。所以这个软件包有一个“宝石”作为软件包的提供者。Puppet:在没有安装Rubygems的机器上安装Rubygem-package
这是我的表现至今(我一直是简单):
# 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之前的阶段进行rubygem安装),但我总是得到了Provider gem
-错误(但也许我只是用错误的方式使用了这些阶段)。
任何人都可以提供一个工作清单,在没有Rubygems的系统上安装rubygems和任何rubygem,或者至少最终提示如何到达那里?
我发现只要安装包libldap-ruby就可以使用ruby-ldap,所以我不需要安装任何gem。不过,我想知道如何使用Puppet安装Rubygems。 – ifischer