Обновление 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
Не забываем почистить кеш браузера.