Мне нужны две разные версии ruby на сервере. Упакованный рубин для работы упакованной марионетки и скомпилированный рубин для работы веб-приложения rails. Итак, в основном я хочу, чтобы рубин по умолчанию был рубином из пакета, а для рельсов использовался скомпилированный рубин (в /usr/local/bin/
и /usr/local/lib/
)
Я нашел ссылки на установку переменных среды RUBYPATH и RUBYLIB, но я не понимаю, где их устанавливать. В .bashrc
, .profile
, где-нибудь в конфиге apache?
Один из приемов состоит в том, чтобы изменить PATH, чтобы сначала включить тот, который вы хотите. Хотя, скорее всего, это взлом.
Если вы используете Rails 2.x (как я предполагаю), вы можете специально запускать что-то, указав путь туда, например:
/usr/local/bin/ruby script/server
(например, для режима разработки.)
Если вы используете что-то вроде Phusion Passenger, который я лично рекомендую, я думаю, что его можно настроить глобально для конфигурации веб-сервера. Я не уверен, что вы можете сделать это для каждого виртуального хоста с помощью Passenger, но похоже, что вам это не нужно.
Я знаю, что это старый поток, но если у кого-то еще есть эта проблема, просто установите RVM (http://rvm.beginrescueend.com/Вы можете буквально переключать версии ruby, которые использует система, вот так (в командной строке):
rvm 1.9.2
ruby -v (will display ruby 1.9.2)
rvm 1.8.7
ruby -v (will display ruby 1.8.7)
Просто, без проблем!
B