2014-01-08 168 views
1

我看到許多關於在rake(任務)文件中執行bash文件的問題。在bash中執行rake命令

我的問題是,如何在bash文件中執行rake命令? 我在我的服務器上的每個rails應用程序中都有一個migrate.sh文件,我使用的是一般的publish.sh。所有這些都運行正常。

然後,我有一個像rake tmp:clear assets:clean log:clear RAILS_ENV=production這樣的命令,每個migrate.sh內部都會給我一個rake: command not found錯誤。

幫助?

+0

'sudo apt-get install rake'? – Alfe

+1

也許是個人資料問題 – klashxx

+0

我認爲這可能是個人資料問題。我正在進行一些測試以確保 – tostasqb

回答

0

klashxx的推測是正確的。這是一個權限/配置文件問題。我已將用戶更改爲root用戶,以便能夠執行其他先前的任務,並發現我的root無法運行rake任務。

雖然這不會是生產服務器上的問題。

謝謝klashxx

1

基本上rake未被解析,因爲PATH變量不正確。你可以試試echo $PATH。你還可以創建一個bash腳本,並提供由耙像這樣需要一些環境變量:

#!/bin/bash 

GEM_HOME=/home/tuxdna/.gems 
SHELL=/bin/bash 
USER=tuxdna 
PATH=/home/tuxdna/.gems/bin:/usr/lib/ruby/gems/1.8/bin/:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games 
GEM_PATH=/home/tuxdna/.gems:/usr/lib/ruby/gems/1.8 

cd ~/somesite 
export RAILS_ENV=production 
bundle exec rake mytask:task1