LINUX.ORG.RU
ФорумAdmin

Как правильно указать PATH для выполнения rake, если Redmine и ruby установлены от имени пользователя

 ,


0

1

Стенд: Centos7, от имени пользователя redmine0 в директорию /opt/redmine установлен Redmine. Ruby также установлен из-под пользователя через rvm в домашнюю директорию.

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

rake -f /opt/redmine/Rakefile redmine:email:receive_imap host=imap.yandex.ru port=993 ssl=YES username=*** password=*** project=mail tracker=bug RAILS_ENV=production allow_override=project,tracker,status,category,priority priority=★★★★ no_permission_check=1 unknown_user=accept delete_unprocessed=1

Из командной строки всё работает замечательно, а вот в кроне (пользовательском) выдает ошибку:

...
/bin/sh: rake: команда не найдена

Делала по мануалу, там указано, как сделать от рута, прописать в скрипте путь вида:

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

Когда ставила Redmine от рута, этот путь работал. Подскажите, как адаптировать PATH под пользователя, чтобы rake выполнялся?

Пробовала:

1. Загнать команду в крон рута, так рут даже команды не знает

-bash: rake: команда не найдена

2. Указать путь до rvm

PATH=/home/redmine0/.rvm/scripts/rvm
- команда rake не найдена

Ответ на: комментарий от deadNightTiger

Спасибо за ответ!

echo $PATH

/home/redmine0/.rvm/gems/ruby-2.3.0/bin:/home/redmine0/.rvm/gems/ruby-2.3.0@global/bin:/home/redmine0/.rvm/rubies/ruby-2.3.0/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/redmine0/.rvm/bin:/home/redmine0/.local/bin:/home/redmine0/bin

Путь вставила в скрипт (вместо рутовских путей):

#!/bin/bash
PATH=/home/redmine0/.rvm/gems/ruby-2.3.0/bin:/home/redmine0/.rvm/gems/ruby-2.3.0@global/bin:/home/redmine0/.rvm/rubies/ruby-2.3.0/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/redmine0/.rvm/bin:/home/redmine0/.local/bin:/home/redmine0/bin
rake -f /opt/redmine/Rakefile redmine:email:receive_imap ...
В крон обновила запись:
*/1 * * * * /bin/bath /home/redmine0/redminemail.sh

Теперь команда найдена, но ошибка при выполнение rake.

rake aborted!
LoadError: cannot load such file -- bundler/setup
/opt/redmine0/config/boot.rb:4:in `<top (required)>'
/opt/redmine0/config/application.rb:1:in `<top (required)>'
/opt/redmine0/Rakefile:5:in `<top (required)>'

Может такое быть, что до bundler'а не прописан путь, поэтому rake выдает ошибку? Или в пути прописаны лишние переменные? Куда еще посмотреть, ведь из командной строки эта команда ошибок не выдает...

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