目前我们的生产服务器运行在 ruby 系统中。Passenger 负责处理我们的 rails 应用程序。
我是否应该使用 rvm 来处理我的整个 ruby 内容?rvm 在生产环境中能给我带来什么优势?请指教。我是服务器处理方面的新手。我需要使用 Passenger 在同一个大型服务器机箱中运行一个或多个应用程序。
如果我通过 rvm 使用 Passenger,我是否应该为安装的每个 ruby 安装 Passenger gem?
答案1
如果你不需要同时运行多个 ruby 版本,我认为没有理由使用 rvm。gemfile 和 bundle 应该足以将正确的 gem 与正确的应用程序关联起来
如果你只是想安装系统提供的 ruby 版本以外的版本,你可以从源代码自行编译,或者使用类似ruby-build。
Rvm 对用户 PATH 进行了很多神奇的操作,并改变了交互式登录 shell 中的行为,而这在生产服务器上是没有意义的。如果您确实需要两个或更多版本的 ruby(可能 jruby 用于应用程序,mri 用于脚本),那么 rbenv 或仅正确设置 PATH 是一个更好的主意。
答案2
rvm 将允许您使用 ruby 的最新补丁级别,其中包括安全补丁 - 这是切换的主要原因
至于在一台服务器上运行多个应用程序,最好的解决方案是使用一个实例nginx作为代理转发至独角兽或者乘客独立每个应用程序