Я пытаюсь использовать поставщик марионеток, которому требуется рубиновый драгоценный камень.
Он запущен в стабильной версии Debian (хрипит), но я получаю следующую ошибку:
err: Could not run Puppet configuration client: no such file to load -- zabbixapi
Проблема, похоже, в том, что марионетка требует специально ruby1.8. Однако установленная версия rubygems предназначена для ruby1.9.1. Поэтому все драгоценные камни, которые устанавливаются, попадают в /var/lib/gems/1.9.1/gems/
, который предположительно версии 1.8 Ruby не просматривается.
Как лучше всего сделать так, чтобы код марионетки требовал драгоценных камней? Я не особо беспокоюсь о том, какая версия рубина в конечном итоге будет использоваться, при условии, что она согласована между rubygems и puppet.
Хакерским решением этой проблемы является жесткое кодирование пути к требуемому драгоценному камню в пути загрузки Ruby.
file { '/etc/profile.d/rubylib.sh':
content => 'export RUBYLIB=\'/var/lib/gems/1.9.1/gems/zabbixapi-2.4.0/lib\''
}
Это плохо по ряду причин:
Однако я не нашел лучшего способа решить эту проблему, так что на данный момент это подойдет.