5

我正在运行一个执行 rake 任务的 crontab。我收到以下错误(使用来自 crontab 的 MAILTO):

rake aborted!
no such file to load -- bundler
/Users/Mendel/Sites/misnooit/Rakefile:4
(See full trace by running task with --trace)

我正在使用 rvm:
ruby​​: ruby​​ 1.9.1p378
rails: Rails 3.0.0.beta
$GEM_HOME: /Users/Mendel/.rvm/gems/ruby-1.9.1-p378
bundler: bundler (0.9.11)

该错误很容易解释,但我无法修复它.. 是否有人对此事有更多了解?提前致谢。

4

5 回答 5

6

我刚刚经历了这一点。对我来说问题是我使用的 rake 和 ruby​​ 实例是在本地构建的,并安装到 /usr/local/bin。/usr/bin 中还有其他版本(必须检查我过去使用 apt-get 安装的内容..)。

所以,在我的 crontab 文件中,我使用

PATH=/usr/local/bin:/usr/bin:/bin

(我在失败的 crontab 电子邮件中将其视为 PATH=/usr/bin:/bin)

它有效。

于 2011-02-08T19:37:47.043 回答
1

我有很好的使用http://github.com/javan/whenever的经验

它使用 Ruby DSL 来管理 cron 任务并处理设置所有环境魔法。

every 3.hours do
  runner "MyModel.some_process"
  rake "my:rake:task"
end
于 2010-07-28T06:20:22.170 回答
1

只是猜测:Ruby 1.9.1p378你的默认 Ruby 是什么?

我认为不是这样你就可以执行rvm --defaults "ruby-1.9.1-p378" 如果这没有帮助,你确定在使用 ruby​​ 1.9 时已经安装了 bundler 吗?

此外,在您的测试/生产环境中,您可能希望与您以外的其他用户一起运行您的 cron。因此,我建议您以“root”身份安装 rvm,并设置(仍以 root 身份)一个默认 RVM,该 RVM 将成为所有系统用户的默认设置。当然,您可以覆盖每个用户。

于 2010-03-27T19:35:41.697 回答
1

让您运行带有 --trace 断言的命令,以确保 rake 命令中没有明显的东西,但您可以做的是链接 crontab 命令

rvm 1.9.1;rake do_whatever_task

这样,它将在每次运行 rake 之前加载 ruby​​ 环境。

于 2010-08-04T09:15:18.517 回答
0

这个周末我遇到了类似的问题,我发现我的 Rake Gem 更新到了 0.90,你需要 rake 0.8.7。这解决了我的问题。

于 2011-05-23T02:03:08.157 回答