@ mpapis определил проблему и предоставил исправление.Вот некоторый дополнительный фон.TL; DR: используйте PROJECT_JRUBY_OPTS
и хуки jRuby.
jRuby использует JRUBY_OPTS
для настройки поведения jRuby.
RVM поддерживает PROJECT_JRUBY_OPTS
с двумя предоставленными файлами хуков (в настоящее время * 1008)* и after_use_jruby_opts
).Если они включены, делая их исполняемыми, хуки используют функции библиотеки сценариев jruby_options_append
и jruby_options_remove
для добавления / удаления параметров в PROJECT_JRUBY_OPTS
в / из JRUBY_OPTS
.
Итак, у вас есть два варианта.
Если вы устанавливаете последнюю версию RVM, вы можете свернуть свой собственный .rvmrc для каждого проекта, а также можете устанавливать переменные среды и запускать команды, как и следовало ожидать.Никаких дополнительных шагов не требуется.
$ cat >> ~/tmp/.rvmrc
export JRUBY_OPTS='--1.9'
^D
А затем:
$ cd ~/tmp
$ env | grep OPTS
JRUBY_OPTS='--1.9'
Или вы можете включить ловушки jruby, сгенерировать .rvmrc и настроить его:
$ chmod +x ${rvm_path}/hooks/after_use_jruby_opts # or after_use_jruby
Тогда:
$ cd ~/tmp
$ rvm --rvmrc --create jruby@projectxyz # edit the resulting .rvmrc, uncomment PROJECT_JRUBY_OPTS
А теперь:
$ cd ~/tmp
$ env | grep OPTS
JRUBY_OPTS='--1.9'
Между этими двумя подходами есть тонкие различия.
При первом подходе изменения в JRUBY_OPTS
сохраняются, даже если вы возвращаетесь из каталога проекта.При втором подходе параметры, специфичные для проекта, удаляются из переменной среды JRUBY_OPTS
при переходе из каталога проекта.
Аналогично, первый случай перезаписывает JRUBY_OPTS
значением в .rvmrc,в то время как второй случай разумно добавляет информацию, специфичную для проекта.
@ paul-biggar, к сожалению, мне не удалось воспроизвести проблему, когда RVM не установлен JRUBY_OPTS
.