Я попытаюсь это сделать - я думаю, что ваша проблема в том, что rvm работает в основном, перебирая переменные окружения, чтобы указать вашей оболочке разные наборы гемов и версии ruby.
Но когда вы запускаетеrvm use
в подоболочке изменения переменных env не распространяются до родительской оболочки.
Не вдаваясь в подробности, моя первоначальная идея состояла в том, чтобы вы запустили rvm use
вещь +, а затем в том же сеансе подоболочки запустили что-то, перечисляющее содержимое всех этих обновленных переменных env (см. Здесьна какие из них вам нужно взглянуть: http://beginrescueend.com/rvm/info/) ... тогда в вашем скрипте ruby вам нужно настроить среду так, чтобы она соответствовала среде в вашей оболочке.
В словах оболочки, что вы обычно делаетев таком случае это «исходный» сценарий, а не его выполнение.Т.е. source "the_script_that_sets_environment_variables"
.Но когда вы находитесь в сценарии ruby и используете обратные метки для запуска содержимого в подоболочке, вы не можете передать среду обратно родительскому объекту, не сделав это вручную.
Другое решение может состоять в том, чтобы взглянуть на RVM Ruby API .Я еще не нашел много документации по этому вопросу, но она также может помочь вам:
http://www.rubyflow.com/items/4285