4

クリーンな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をインストールする作業マニフェスト、または少なくともそこに到達するための最後のヒントを誰かが私に提供できますか?

4

1 に答える 1

0

私の問題はPuppet2.7.8(2.7.13を使用していました)で修正する必要がありますが、この問題を参照してください。2.7.13でこの問題が発生したことは間違いありません。

2.7.14がインストールされている別のマシンでこれを再試行しました。そこで、RubygemsとPuppetを含むRubygemパッケージを正常にインストールできます。

于 2012-05-20T15:17:15.140 に答える