LINUX.ORG.RU

RVM + Crontab

 rvm ruby crontab


0

1

Пытаюсь заставить работать вместе.

rvm установлен для пользователя, скрипт работает и запускается нормально.

Но если его запустить через кронтаб, то он не работает. Перепробовал всё что есть на первых страницах Гугла, например:

/bin/bash -l -c 'source ~/.rvm/scripts/rvm && rvm use 1.9.3 && ~/script.rb'

Вижу ошибку:

$rvm_path (/usr/local/rvm) does not exist./home/ksevelyar/.rvm/scripts/rvm: line 160: rvm_is_a_shell_function: command not found
/home/ksevelyar/.rvm/scripts/rvm: line 171: __rvm_teardown: command not found

Чтобы эмулировать crontab запускаю команду внутри env -i $SHELL --norc



Последнее исправление: ksevelyar (всего исправлений: 1)

пытаюсь...эмулировать...

Не надо пытаться, надо просто показать, что именно в кроне прописано

zolden ★★★★★
()

Вроде всё правильно делаешь, даже хз, в чём загвоздка.

Если тебе непринципиально, что версия рубей будет жёстко задана для твоего скрипта, то сделай так, как говорит дока:

1 0  * * * /usr/local/rvm/bin/ruby-1.9.2-p290@projectX /path/to/script.rb

Я предпочитаю делать так:

1 0  * * * /bin/bash -c -l 'cd path/to/dir/with/script && ruby script.rb'

А в директории уже .rvmrc с нужной версией руби и гемсетом.

Apple-ch ★★
()
Ответ на: комментарий от Apple-ch

Спасибо.

Вот такой вариант работает:

0 */4 * * * /bin/bash -l -c 'source ~/.rvm/environments/ruby-1.9.3-p194@global && ~/script.rb'

Но и так и так получается что версия Руби жёстко задана? Или в скрипте, или в .rvmrc.

ksevelyar
() автор топика
Ответ на: комментарий от ksevelyar

получается что версия Руби жёстко задана?

Да, и именно этого мы добиваемся, не так ли? Если я внезапно поставлю рубиниус по умолчанию, скрипты, которые требуют МРИ, не будут валиться с ошибками.

.rvmrc предпочтительнее, если собираешься запускать ручками из директории. Плюс изоляция гемов, если нужно.

Apple-ch ★★
()
Ответ на: комментарий от Apple-ch

Я использую rvm для того, чтобы получить одинаковые (и последние) версии Руби на рабочей машине (Arch) и сервере (Debian). При этом не пачкая системы сбором из исходников.

Версиями гемов заведует bundler, так что меня устроила бы просто последняя версия Руби установленная с rvm.

ksevelyar
() автор топика
Ответ на: комментарий от ksevelyar

Уточню: тебе нужен не просто последний руби, а последний стабильный руби определённой версии.

В таком случае рвмрц — твой выбор. Указываешь use 1.9.3 и всё. При апгрейде до последней стабильной версии 1.9.3 ничего менять не придётся.

Ну а когда выйдет стабильный 2.0 — тогда уж поменяешь, он же не каждый день выходит.

Apple-ch ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.