Я пытаюсь использовать марионеточного поставщика, который требует рубинового драгоценного камня.
Это выполняется на 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 рубина.
Каков самый опрятный способ наличия марионеточной способности кода потребовать драгоценных камней? Я действительно не суечусь, какая версия рубина заканчивает тем, что использовалась, если это последовательно между rubygems и марионеткой.
Хакерское решение - жестко закодировать путь к требуемому драгоценному камню в пути загрузки Ruby.
file { '/etc/profile.d/rubylib.sh':
content => 'export RUBYLIB=\'/var/lib/gems/1.9.1/gems/zabbixapi-2.4.0/lib\''
}
Это плохо для числа причин:
Однако я ' я не нашел лучшего способа решить эту проблему, так что сейчас подойдет.