web-dev-qa-db-ja.com

Puppetは、複数のRubyバージョン環境のaugeasでは機能しません

Augeasでパペットを動作させようとしていますが、augeasプロバイダーがないと文句を言います。いくつかのグーグルは

Sudo yum install augeas
augtool ls /files/etc/php.ini # test it works as expected
Sudo yum install Ruby-augeas # this is to "bridge" Ruby and augeas
Ruby -raugeas -e "puts Augeas.open" # Test Ruby can talk to augeas
/usr/local/rvm/rubies/Ruby-2.0.0-p451/lib/Ruby/site_Ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- augeas (LoadError)
    from /usr/local/rvm/rubies/Ruby-2.0.0-p451/lib/Ruby/site_Ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'

最後の行を除いて、すべてが機能し、インストールされます。 Ruby augeas.rbがRubyインクルードパスにないため、どこにあるかわからない

[vagrant@SubscriptionsAPI ~]$ Sudo find / -name "augeas.rb"
/usr/local/rvm/gems/Ruby-2.0.0-p451/gems/puppet-3.4.3/lib/puppet/provider/augeas/augeas.rb
/usr/local/rvm/gems/Ruby-2.0.0-p451/gems/puppet-3.4.3/lib/puppet/type/augeas.rb
/usr/lib/Ruby/site_Ruby/1.8/augeas.rb

[vagrant@SubscriptionsAPI ~]$ Ruby -e 'puts $:'
/usr/local/rvm/rubies/Ruby-2.0.0-p451/lib/Ruby/site_Ruby/2.0.0
/usr/local/rvm/rubies/Ruby-2.0.0-p451/lib/Ruby/site_Ruby/2.0.0/x86_64-linux
/usr/local/rvm/rubies/Ruby-2.0.0-p451/lib/Ruby/site_Ruby
/usr/local/rvm/rubies/Ruby-2.0.0-p451/lib/Ruby/vendor_Ruby/2.0.0
/usr/local/rvm/rubies/Ruby-2.0.0-p451/lib/Ruby/vendor_Ruby/2.0.0/x86_64-linux
/usr/local/rvm/rubies/Ruby-2.0.0-p451/lib/Ruby/vendor_Ruby
/usr/local/rvm/rubies/Ruby-2.0.0-p451/lib/Ruby/2.0.0
/usr/local/rvm/rubies/Ruby-2.0.0-p451/lib/Ruby/2.0.0/x86_64-linuxе

これが事実であると仮定して私は正しいですか?はいの場合、特定のRubyバージョンのaugeasをインストールするにはどうすればよいですか?またはRubyインクルードパスを変更する方がクリーンですか?

3
Vladimir Hraban

パッケージ化されたRubyライブラリとRVMは2つの別個の環境です。そのようにそれらを混在させることはできません。どちらを使用するかを、選択する必要があります。

したがって、次のいずれかを行う必要があります。

  • パッケージを使用してRuby Augeasバインディングをインストールする
  • またはRVMにPuppetをインストールします
2
ℝaphink