为什么cron使用与我的用户不同的Ruby,以及如何解决?

我有一个Ruby脚本的cron作业。 问题是, ruby可执行文件是不同于预期的。 Ruby是从源代码安装的,所以它应该是新的全局默认值。

 $ ssh [email protected] [email protected]$ ruby -v ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux] [email protected]$ which ruby /usr/local/bin/ruby 

我目前有我的脚本显示当前用户,rubypath和ruby版本:

 # whoami root # which ruby /usr/bin/ruby # ruby -v ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux] 

我如何纠正这个问题?

更新:执行的第一个Ruby文件的顶部有这样一行:

 #!/usr/bin/env ruby 

设置你的$ PATH,使包含你想要的版本的目录首先被列出。

和/或

改变脚本的第一行,直接指向你想要的ruby版本:

 #!/usr/bin/ruby