Обновление Easy Redmine

Обновление Easy Redmine с версии 3.3.0 stable на 10.0.2.
Старая версия датирована 2015 годом, новая — апрель 2020.
Операционная система — Debian 8.

Основная проблема у заказчика была в том, что по документации от разработчика обновление не происходило успешно. На каждом этапе инструкции в консоли вываливали ошибки несовместимости установленных и требуемых для новой системы пакетов. Несмотря на то, что тема конфликтов пакетов при работе на Ruby on Rails, в Интернете избита, получилось побороть ее не так быстро. Для этого и решил записать все, что было проделано в этой статье, чтобы иметь инструкцию на будущее, а может и кому еще поможет.

Погнали:

Останавливаем службу

systemctl stop easy.service

Обновляем софт

apt update
apt upgrade

Обновить RVM и Ruby

gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
source /etc/profile.d/rvm.sh
rvm get stable
cd /home/easy/current
rvm install ruby-2.5.8
rvm use ruby 2.5.8 --default

Добавим команду в автозагрузку профиля

echo ‘[[ -s «/etc/profile.d/rvm.sh» ]] && source «/etc/profile.d/rvm.sh»‘ >> ~/.bashrc

Добавим пользователя easy в группы sudo и rvm

usermod -a -G sudo easy
usermod -a -G rvm easy

Переходим в пользователя easy, включаем новую версию ruby

su - easy
cd /home/easy/current
rvm use ruby 2.5.8 --default

Ставим redmine-installer unicorn

gem install redmine-installer unicorn

Выходим из рабочего каталога redmine и запускаем обновление. Перед этим нужно позаботиться о том, чтобы архив с установщиком от Easy Redmine лежал в домашней директории пользователя easy с правами на чтение для easy (например, у меня было вот так /home/easy/easyredmine_2016_stable_u24355_vVersion_10_0_2.zip).

cd ../
redmine upgrade ./easyredmine_2016_stable_u24355_vVersion_10_0_2.zip /home/easy/current

В процессе обновления скрипт предложит сделать бэкап — на свое усмотрение. Также был задан вопрос по поводу плагинов:

Your application contains plugins that are not present in the package (easy_entities_sequences, easy_contacts, easy_helpdesk, easy_alerts, easy_knowledge, easy_crm, easy_attendances, easy_instant_messages). Would you like to copy them? (Y/n)

Я ответил No, так как это рекомендация разработчиков — удалить все плагины, которые отсутствуют в дистрибутиве, перед запуском обновления.

Также в процессе обновления автоматически будет выполнена команда

bundle install

которая подтянет все необходимые новые gem’ы, а существующие либо обновит, либо просто использует.

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

Do you want save steps for further use? (y/N) Y

Выполняем команду последнюю команду

rake easyredmine:install RAILS_ENV=production

Переходим обратно в обычного юзера с правами root и запускаем службу

systemctl start easy.service

Не забываем почистить кеш браузера.