支持
RVM 由志愿者社区维护,请将问题报告到 RVM 问题追踪器。
如果您能提供帮助或希望成为维护者之一,请开始提供帮助。 您可以在 RVM Github 组织。 找到更多与 RVM 相关的项目。
赞助商
Carbon Ads

使用 RVM 与 Cron

RVM 允许几种简单的方法与 cron 集成

  1. 直接调用 RVM 生成的包装器。
  2. 在 shell 脚本中加载 RVM 环境文件。
  3. 直接调用自定义 RVM 包装器(例如 God)。
  4. 在 shell 脚本中加载和使用 RVM。

直接调用 RVM 生成的包装器

对于每个安装的 ruby 和创建的 gemset,RVM 都会为基本命令行工具(如 gemrakeruby)创建包装器。 您可以在 $rvm_path/wrappers/<ruby-version>[@gemset-name] 中找到它们。

因此,当项目 ruby 为 2.1.1@projectX 时,以下 cron 条目将使用正确的环境工作

1 0  * * * /usr/local/rvm/wrappers/ruby-2.1.1@projectX/ruby /path/to/script.rb
1 15 * * * /usr/local/rvm/wrappers/ruby-2.1.1@projectX/rake update stats

别名

为了简化将来 ruby 版本的更改,请使用别名,这是确保配置在 ruby 版本更改时无需更改的最简单方法

rvm alias create my-project ruby-2.1.1@projectX

然后您可以使用别名路径

1 15 * * * /usr/local/rvm/wrappers/my-project/rake update stats

在 shell 脚本中加载 RVM 环境文件

对于每个安装的 ruby 和创建的 gemset,RVM 都会创建环境文件。 您可以通过运行以下命令找到它们

rvm env --path -- ruby-version[@gemset-name]

假设项目 ruby@gemset 为 2.1.1@projectX,那么调用

rvm env --path -- 2.1.1@projectX

将返回

/usr/local/rvm/environments/ruby-2.1.1@projectX

示例脚本

与 rvm 安装的 ruby 交互的基本 shell 脚本如下所示

#!/usr/bin/env bash

# load rvm ruby
source /usr/local/rvm/environments/ruby-2.1.1@projectX

bundle install
ruby /path/to/script.rb
rake do something