为什么 cron 使用的 Ruby 与我的用户不同以及如何修复它?

为什么 cron 使用的 Ruby 与我的用户不同以及如何修复它?

我有一个 cron 作业,它是一个 Ruby 脚本。问题是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

我目前的脚本显示当前用户、ruby 路径和 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

答案1

设置您的 $PATH 以便首先列出包含您想要的版本的目录。

和/或

更改脚本中的第一行以直接指向您想要的 ruby​​ 版本:

#!/usr/bin/ruby

相关内容