如果您能提供帮助或希望成为维护者之一,请开始帮助我们。您可以在 RVM Github 组织 中找到更多与 RVM 相关的项目。
∞使用 RVM 与 God
要使用 god
(或任何其他需要使用 init.d
启动的应用程序)与 RVM,您需要生成一个包装脚本。也就是说,您需要设置它,以便有一个替代的可执行文件来加载正确的 gemset。
例如,如果您在 management
gemset(即 ruby@management
)中安装了 ruby
下的 god
,您将执行以下操作
rvm wrapper ruby@management bootup god
运行此命令将在 ~/.rvm/bin
中生成可执行文件 bootup_god
,或者,如果您已在系统范围内安装了 RVM,则在 /usr/local/rvm/bin
中生成。
因此,在设置您的 init 文件时,您将使用 bootup_god
的路径,而不是使用 god
的直接路径。例如,您可以将以下内容添加到 /etc/rc.local
(尽管我们建议使用您操作系统的 init.d
系统)
/home/your-long/.rvm/bin/bootup_god -c /path/to/config.god --log /var/log/god.log --no-syslog --log-level warn
此外,请注意,您在 god
配置中引用的任何其他 gemset 或 ruby 下的 gem(例如 thin
或 thor
),您也需要为它们生成包装脚本(因此,使用它们的路径),方法是
rvm wrapper ruby@gemset [scope] [binary-name]
其中 [scope]
是可执行文件的名称前缀(例如,之前的 god
),binary-name
是要为其生成包装器的二进制文件。因此,创建 $rvm_bin_path/[scope]_[binary-name]
,例如 ~/.rvm/bin/myapp_thin
。
为了简化,current
可以用作 ruby@gemset
,并且将使用当前使用的 ruby 来生成包装器,例如
rvm wrapper current bootup god
最后,您将用包装器的路径替换 god
配置中所有对 thin
或 thin
路径的调用。