考虑将 RVM 在新机器上投入生产(轻型)。但我没有想象如果用户未登录它将如何工作。RVM 已安装到/usr/local/rvm/bin/rvm
所以“每个人”都可以使用它。
如果服务器重新启动并处于登录屏幕并且后台守护进程正在为 apache/rails 等提供服务并且没有.bashrc
等已经加载...我们如何/在哪里指定要加载哪些 RVM 的 Rubies?
也许在 Phusion 的 Passenger 的某个地方?
谁管理这些宝石?它们是共享的吗?
您可以使用 RVMwrapper
命令生成脚本,在执行必要的二进制文件之前加载正确的 RVM 环境。格式为:
rvm wrapper [ruby_string] [wrapper_prefix] [binary[ binary[ ...]]]
例如,创建一个名为system_unicorn
加载ruby-1.9.2-p180
然后执行unicorn
,使用以下内容:
rvm wrapper ruby-1.9.2-p180 system unicorn
您可以传递多个二进制文件来为其创建包装器。例如,为两者创建包装器unicorn
and god
, run
rvm wrapper ruby-1.9.2-p180 system unicorn god
ruby_string
可以是任何你可以传递给的东西rvm use
,因此也可以包含宝石集;例如,创建myapp_unicorn
对于宝石镶嵌my_app_gemset
, use:
rvm wrapper ruby-1.9.2-p180@my_app_gemset myapp unicorn
当你现在安装 Passenger 时,它会自动为其创建一个包装器ruby
(很确定它称之为passenger_ruby
)加载正确版本的 Ruby(您安装时使用的版本)。您可以使用config/setup_load_paths.rb
指定宝石集--参见这个堆栈溢出答案.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)