Как я могу использовать rubygem в марионеточном поставщике на debian конюшне?

Я пытаюсь использовать марионеточного поставщика, который требует рубинового драгоценного камня.

Это выполняется на 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 и марионеткой.

0
задан 8 December 2014 в 03:15
1 ответ

Хакерское решение - жестко закодировать путь к требуемому драгоценному камню в пути загрузки Ruby.

file { '/etc/profile.d/rubylib.sh':
    content => 'export RUBYLIB=\'/var/lib/gems/1.9.1/gems/zabbixapi-2.4.0/lib\''
}

Это плохо для числа причин:

  • Номера версий жестких кодов
  • Необходимо запускать марионетку несколько раз
  • Необходимость выхода из системы и возврата между запусками марионетки
  • Решает проблему на неправильном уровне абстракции

Однако я ' я не нашел лучшего способа решить эту проблему, так что сейчас подойдет.

0
ответ дан 24 November 2019 в 08:53

Теги

Похожие вопросы