2010-03-15 63 views
5

我正在執行一個rake任務一個crontab。我發現了以下錯誤(與MAILTO從crontab中):的crontab + Rails3中+捆綁

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

我使用RVM有:
紅寶石:紅寶石1.9.1p378
導軌:導軌3.0.0.beta
$ GEM_HOME :/Users/Mendel/.rvm/gems/ruby-1.9.1-p378
捆綁:捆綁(0.9.11)

的錯誤是非常自我解釋,但我不能修復它。有人對這件事有更多的瞭解嗎?提前致謝。

+0

有你確保你的用戶加載RVM配置? – shingara 2010-03-15 09:36:13

+0

我想我是,但你能告訴我你會怎麼做?也許我做錯了什麼。 – user288764 2010-03-15 10:06:25

回答

1

只是猜測:是Ruby 1.9.1p378默認的Ruby?

我認爲這不是你可以只執行rvm --defaults "ruby-1.9.1-p378" 如果這沒有幫助,你確定使用ruby 1.9時已安裝bundler嗎?

此外,在您的測試/生產環境中,您可能需要運行你與其他用戶比自己和cron。所以我建議你將rvm安裝爲「root」,然後設置(仍然是root)默認的RVM,它將成爲所有系統用戶的默認設置。 當然,您可以覆蓋每個用戶。

1

我已經使用http://github.com/javan/whenever

它使用一個Ruby的DSL來管理後臺任務,它處理設置所有環境魔術很好的經驗。

every 3.hours do 
    runner "MyModel.some_process" 
    rake "my:rake:task" 
end 
1

有你的運行與--trace命令斷言,以確保沒有在rake命令東西很明顯,但你可以做的是連鎖crontab命令的

rvm 1.9.1;rake do_whatever_task 

這樣,它將在運行耙子之前每次加載ruby環境。

6

我剛剛經歷了這一點。問題在於我使用的rake和ruby實例是在本地構建的,並且安裝到/ usr/local/bin。/usr/bin中還有其他版本(必須檢查我以前使用apt-get安裝的內容)。

所以,在我的crontab文件我設置使用

PATH =在/ usr/local/bin目錄的路徑:在/ usr/bin中:

(我把它看作PATH =的/ usr/bin中/斌:在失敗的crontab電子郵件/箱)

和它的作品。

0

本週末我有類似的問題,我發現我的Rake Gem更新爲0.90,你需要耙0.8.7。這解決了我的問題。