Mel*_*emi 8 passenger rvm ruby-on-rails-3
考虑在新机器上投入RVM(轻型).但是我没有想象如果用户没有登录它将如何工作.已经安装了RVM,/usr/local/rvm/bin/rvm因此它可供"所有人"使用.
如果服务器重新启动并且在登录屏幕并且后台守护进程正在服务apache/rails等等而且没有.bashrc,等等已经加载...我们如何/在哪里指定要加载哪些RVM的Rubies?
也许在Phusion的乘客的某个地方?
谁管理这些宝石?他们分享了吗?
Mic*_*ley 13
wrapper在执行必要的二进制文件之前,您可以使用RVM 命令生成加载正确RVM环境的脚本.格式为:
rvm wrapper [ruby_string] [wrapper_prefix] [binary[ binary[ ...]]]
Run Code Online (Sandbox Code Playgroud)
例如,要创建一个名为system_unicornload ruby-1.9.2-p180,然后执行的二进制文件unicorn,请使用以下命令:
rvm wrapper ruby-1.9.2-p180 system unicorn
Run Code Online (Sandbox Code Playgroud)
您可以传递多个二进制文件来创建包装器.例如,要为两者创建包装器,unicorn然后god运行
rvm wrapper ruby-1.9.2-p180 system unicorn god
Run Code Online (Sandbox Code Playgroud)
ruby_string可以是你可以传递的任何东西rvm use,因此也可以包含gemsets; 例如,要myapp_unicorn为gemset 创建my_app_gemset,请使用:
rvm wrapper ruby-1.9.2-p180@my_app_gemset myapp unicorn
Run Code Online (Sandbox Code Playgroud)
这些天安装Passenger时,会自动为它创建一个包装器ruby(非常肯定它会调用它passenger_ruby),它会加载正确版本的Ruby(安装它时使用的版本).您可以使用它config/setup_load_paths.rb来指定gemset - 请参阅此Stack Overflow答案.
我过去通过使用已设置 rvm 的用户运行所有作业来处理此问题。它确实增加了许多简单作业的复杂性,因为您必须确保 rvm 已加载。如果您需要以 root 身份运行命令并使用 rvm,则可以使用该rvmsudo命令。
您还可以以 root 身份在系统范围内安装 RVM:
| 归档时间: |
|
| 查看次数: |
2279 次 |
| 最近记录: |