2011-08-17 58 views
6

我已經升級到rails 3.0.9,它引入了rake問題。除了cron作業的問題,我已經解決了所有問題。cron和bundle exec問題

這用來工作:

#!/bin/sh 
source /usr/local/rvm/scripts/rvm 
cd /home/p1r65759/apps/abbc/ 
/usr/local/bin/rake refresh_events RAILS_ENV=production 

但現在我得到這個錯誤: 您已經激活耙0.8.7,但你的Gemfile需要耙0.9.2。考慮使用bundle exec。 /家庭/ p1r65759 /應用/ ABBC/Rake文件:4:`」 (參見全部跟蹤運行與--trace任務)

如何修改我的腳本使用捆綁EXEC所以它會使用正確的耙的版本和運行成功? 謝謝。

+0

有類似的問題,但沒有RVM。無論如何,也許你可以指定耙0.9.2或更新您的系統耙寶石的路徑0.9.2(取決於這是否是服務器上唯一的應用程序...) – wesgarrison

+0

修復,由於技術支持在HostingRails.com 。只是將最後一行更改爲捆綁exec rake refresh_events RAILS_ENV =生產。不需要它前面的路徑。我不知道你可以這樣做。 – Brett

+0

然後將其作爲答案添加並接受它。爲後人和未來的谷歌:-) – wesgarrison

回答

9

如果您使用的是應用程序的捆綁器,那麼您不需要使用「/ usr/local/bin/rake」作爲rake的路徑。

你可以使用

bundle exec rake

因此新的腳本將

 
#!/bin/sh 
source /usr/local/rvm/scripts/rvm 
cd /home/p1r65759/apps/abbc/ 
bundle exec rake refresh_events RAILS_ENV=production 

束Exec將工作,因爲你已經在你的項目目錄。

而且不要忘了,包括你的Gemfile耙。

4

,而不是

/usr/local/bin/rake refresh_events RAILS_ENV=production 

你應該使用

bundle exec rake refresh_events RAILS_ENV=production 

或更好,但與--binstubs安裝捆綁軟件:

bundle install --binstubs --without development test 

那麼你將有斌/耙:

./bin/rake refresh_events RAILS_ENV=production