考虑在新机器上投入RVM(轻型).但是我没有想象如果用户没有登录它将如何工作.RVM已经安装到/usr/local / rvm / bin / rvm中,因此它可供“所有人”使用.
如果服务器重新启动并且在登录屏幕并且后台守护程序正在服务apache / rails等,并且没有.bashrc等已经加载…我们如何/在哪里指定要加载哪些RVM的Rubies?
也许在Phusion的乘客的某个地方?
谁管理这些宝石?他们分享了吗?
解决方法
您可以使用RVM的wrapper命令生成脚本,以在执行必要的二进制文件之前加载正确的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
您可以传递多个二进制文件来创建包装器.例如,要为独角兽和上帝创建包装器,请运行
rvm wrapper ruby-1.9.2-p180 system unicorn god
ruby_string可以是你可以传递给rvm使用的任何东西,因此也可以包含gemsets;例如,要为gemset my_app_gemset创建myapp_unicorn,请使用:
rvm wrapper ruby-1.9.2-p180@my_app_gemset myapp unicorn
这些天安装Passenger时,它会自动为它的ruby创建一个包装器(非常确定它称之为passenger_ruby),它会加载正确版本的Ruby(安装它时使用的版本).您可以使用config / setup_load_paths.rb指定gemset – 请参阅this Stack Overflow answer.