2010-12-13 35 views
5

我想在我的應用程序中使用whenever gem,但我無法在schedule.rb中運行rake命令。它扔了每當使用gem時問題

錯誤是

/bin/bash: rake: command not found 

我也使用捆綁所以我所有的寶石凍結到應用程序。

回答

4

在某處非典型地耙取,如/ usr/local/bin?嘗試添加到schedule.rb:

env :PATH, '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin' 
0

嘗試使用'command'而不是rake。我的耙子在/ usr/local/bin中,我無法弄清楚如何使它工作。所以這裏有一個命令的例子,而不是在schedule.rb:

every 5.minutes do 
    command "cd " + `pwd`.chomp + " && RAILS_ENV=#{environment} /usr/local/bin/rake rakefile:rakemethod" 
end 

注意你還必須在環境中傳遞這個例子。我想你只要在調用schedule.rb時使用'when --update_crontab --set environment = beta'來做到這一點。

我有capistrano在每當寶石時都使用capistrano食譜(請參閱隨時間源下的lib dirs)。我必須在我的capistrano部署腳本中設置every_environment。

每當可以默認生產,所以我只是玩弄它,看看。換句話說,如果您僅在生產環境中執行此操作,則可能不需要RAILS_ENV =#{environment}。我有幾個臨時環境,所以我通過環境來幫助腳本。

如果只有我可以指定一個不同的rake目錄才能使它與/ usr/local/bin/rake配合使用!任何人都可以幫忙