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

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модератор: SLEDopit

Ответить
Nilore
Сообщения: 2
ОС: Centos 7 minimal

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

Сообщение Nilore »

Стенд: Centos7 с последними обновлениями, Redmine 3.1.7 (располагается в директории /opt/redmine), ruby 2.3.0 (установлен через rvm), bundler 1.13.5.
Изначально ставил всё от root, настраивал создание задач из писем из командной строки так:

Код: Выделить всё

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/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
rake -f /opt/redmine0/Rakefile redmine:email:receive_imap host=imap.yandex.ru port=993 ssl=YES username=*** password=*** project=mail tracker=mail RAILS_ENV=production allow_override=project,tracker,status,category,priority priority=★★★★ no_permission_check=1 unknown_user=accept delete_unprocessed=1

Иначе, без указания PATH, "rake – команда не найдена".
В сам крон добавляю строку:

Код: Выделить всё

*/5 * * * *   /bin/bash /путь/до/скрипта.sh

От рута – всё работает.
Для повышения безопасности устанавливаю от имени пользователя redmine0. Стенд такой же, версии программ те же, только ruby и bundler устанавливаю от пользователя в его /home. А Redmine туда же, в /opt/redmine.
В итоге, выполняю команду из-под пользователя – выполняется, даже менять ничего не пришлось:

Код: Выделить всё

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

А крону не могу найти как путь правильный указать. Пути пользователя узнал командой:

Код: Выделить всё

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

Добавляю этот путь в скрипт для крона, крон при выполнении выдает ошибку:

Код: Выделить всё

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)>'

Т.е. команда rake - найдена, выполняется (без путей не выполняется, ибо не найдена). Bundler установлен, работает, сайт Redmine работает на нем. Может какого-то ещё пути не хватает в PATH, поэтому bundler не найден?
Спасибо сказали:
Аватара пользователя
nerve
Сообщения: 280
ОС: OpenBSD

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

Сообщение nerve »

попробуй в скрипт добавить

Код: Выделить всё

export GEM_HOME=
export GEM_PATH=

сами пути можно узнать из
gem env
Спасибо сказали:
Nilore
Сообщения: 2
ОС: Centos 7 minimal

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

Сообщение Nilore »

nerve писал(а):
13.10.2017 13:50
попробуй в скрипт добавить

Код: Выделить всё

export GEM_HOME=
export GEM_PATH=
Спасибо ОГРОМНОЕ!!!! Работает!!!

Добавил в скрипт строки, которые выдала команда gem env:

Код: Выделить всё

export GEM_HOME=/home/redmine0/.rvm/gems/ruby-2.3.0@global
export GEM_PATH=/home/redmine0/.rvm/gems/ruby-2.3.0

---
Как-то тут можно ответить тему решенной, не нашел сходу
Спасибо сказали:
Аватара пользователя
nerve
Сообщения: 280
ОС: OpenBSD

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

Сообщение nerve »

Редактируешь первый пост и там редактируешь название темы, например в начале пишешь "[Solved] - Как правильно указать..."
Спасибо сказали:
Ответить