Назад | Перейти на главную страницу

Puppet не работает с augeas в среде с несколькими версиями ruby.

Я пытаюсь заставить куклу работать с 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е

Правильно ли я предполагаю, что это так? Если да, как я могу установить Augeas для конкретной версии Ruby? Или лучше изменить путь включения рубина?

Упакованные библиотеки ruby ​​и RVM - это две разные среды. Так их смешивать нельзя, нужно выбрать, какой использовать.

Итак, вам необходимо:

  • установить привязки ruby ​​Augeas с помощью пакетов
  • или установите Puppet в RVM