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)


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)で rvm を使用しています。

エラーは自明ですが、修正できません..この問題についてもっと知識のある人はいますか? 前もって感謝します。

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

--traceを指定してコマンドを実行し、rakeコマンドに明らかなものがないことを確認しますが、実行できるのはcrontabコマンドをチェーンすることです。

rvm 1.9.1;rake do_whatever_task

そうすれば、rakeを実行する前に毎回ruby環境をロードします。

于 2010-08-04T09:15:18.517 に答える
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を使用したときにバンドラーがインストールされていますか?

また、テスト/本番環境では、自分以外のユーザーとcronを実行することをお勧めします。したがって、rvmを「root」としてインストールし、すべてのシステムユーザーのデフォルトとなるデフォルトのRVMを(引き続きrootとして)設定することをお勧めします。そしてもちろん、ユーザーごとにこれをオーバーライドできます。

于 2010-03-27T19:35:41.697 に答える
0

私は今週末に同様の問題を抱えていました。私のレーキジェムが0.90に更新され、レーキ0.8.7が必要であることがわかりました。これで私の側の問題は解決しました。

于 2011-05-23T02:03:08.157 に答える