クリーンなDebianシステム(Rubygemsがインストールされていない)に、Puppet(バージョン2.7.13)を含むRubygemパッケージをインストールしたいと思います。したがって、パッケージにはパッケージプロバイダーとして「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に関するいくつかの情報(たとえばこれ)を見つけましたが、コードで実際の解決策を提供するものがなかったため、これらのどれも私の問題を解決するのに役立ちませんでした。
また、クラスとステージを使用してみました(gemインストールの前のステージでrubygemインストールを実行しました)が、常にエラーが発生しましたProvider gem
(ただし、ステージを間違った方法で使用した可能性があります)。
RubygemsのないシステムにRubygemsとRubygemをインストールする作業マニフェスト、または少なくともそこに到達するための最後のヒントを誰かが私に提供できますか?