2014-01-08 126 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