Назад | Перейти на главную страницу

Почему cron использует другой Ruby, чем мой пользователь, и как это исправить?

У меня есть задание cron, которое представляет собой сценарий Ruby. Проблема в том, что ruby исполняемый файл отличается от ожидаемого. Ruby был установлен из исходного кода, поэтому он должен быть новым глобальным значением по умолчанию.

$ ssh root@example.com

root@example.com$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]

root@example.com$ which ruby
/usr/local/bin/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