在rake任务中使用错误的ruby路径作为cron执行

ila*_*sno 1 linux cron rubygems ruby-on-rails whenever

我试图使用when gem来执行几个rake任务.它似乎正确设置了cron任务 - 这里的信息来自生成的邮件输出.以下是执行命令的示例:

/bin/bash -l -c 'cd /path/to/deployed/app && RAILS_ENV=production
Run Code Online (Sandbox Code Playgroud)

rake clean:my:task --silent'

以下是一些环境变量:

X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
Run Code Online (Sandbox Code Playgroud)

以下是错误:

/bin/bash: /usr/bin/rake: /usr/bin/ruby: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)

当我登录时,我可以从同一目录运行这些rake任务,但是当我运行时

which ruby
Run Code Online (Sandbox Code Playgroud)

我明白了

/usr/local/bin/ruby
Run Code Online (Sandbox Code Playgroud)

似乎在/ usr/bin中有一个"rake",但正在运行

/usr/bin/rake -T
Run Code Online (Sandbox Code Playgroud)

给了我同样的错误:

-bash: /usr/bin/rake: /usr/bin/ruby: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)

解决这个问题的最佳方法是什么?

Gre*_*her 5

您的路径中是/ usr/local/bin /吗?当你运行哪个ruby你得到/ usr/local/bin/ruby​​但是当你运行rake时它正在寻找/ usr/bin/ruby

或者你可以像符号链接:

sudo ln -s/usr/local/bin/ruby​​/usr/bin /.