cronでRVMのRubyが動かない時、まずやること

  • 11
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

普通に手でruby ナントカって叩いたら動くのにcrontabに書いて動かしたら「そんなgemねぇぞ」みたいなエラーが出てくる。
正確には「あれ?動いてないぞ?」と思ってmail見たらそういうエラーがごっそり溜まってる。

/usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- twitter (LoadError)

こういうエラー。

これは、自分で動かすときとcronにやってもらうときでは$PATHとかの環境が違って、なんかRVMのgemのパス?が通ってないことが原因らしい。

2秒で解決

ググるとcrontabに$PATHを追加するとか、それ用のシェルスクリプト書くとかいろいろ出てくるけど、そんなこともあろうかとRVMがそういうのやってくれるコマンドを作ってくれてる。ありがとう!!!

なので、とりあえず最初にこれを試してダメだったらいろいろ試すとよさそう。
$ rvm cron setup
これを打ち込むとrvmがcrontabにもろもろゴニョッと追加してくれて、次から動く。はず。

懸念事項

RVMが今使ってるrubyのバージョンでゴニョッと追加するだけっぽいので、スクリプトごとにバージョン変えたいとか、そういう器用なことはできない。がんばりましょう。

参考