我在服务器上需要两个不同版本的 ruby。打包的 ruby 使打包的 puppet 能够工作,而编译的 ruby 使 rails web 应用程序能够工作。所以基本上我希望默认 ruby 是来自包的 ruby,而 rails 使用编译的 ruby(在/usr/local/bin/
和中/usr/local/lib/
)
我找到了设置 RUBYPATH 和 RUBYLIB 环境变量的参考资料,但我不知道在哪里设置它们。在.bashrc
,.profile
在 apache 配置中的某个地方?
答案1
一个技巧是先将 PATH 合并以包含您想要的那个。不过,这可能是一种 hack。
如果您使用的是 Rails 2.x (我假设您使用的是),那么您可以使用那里的路径专门运行程序,例如:
/usr/local/bin/ruby script/server
(例如,用于开发模式。)
如果您正在使用 Phusion Passenger 之类的工具(我个人推荐),我认为可以将其全局设置为 Web 服务器配置。我不确定您是否可以使用 Passenger 针对每个虚拟主机进行此操作,但听起来您不需要这样做。
答案2
我知道这是一个老话题,但万一其他人遇到这个问题,只需安装 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)
很简单,没问题!
乙