мая 012014
 

Задача на сегодня: перевести redmine с ruby 1.8 на ruby2. Надоело. Сейчас в системе уже есть и ruby1.8 и ruby1.9 . А ветка jessie уже ориентирована на ruby2. Поехали.

  • Отключаем сайт:  a2dissite <site>; apache2ctl restart
  • Устанавливаем: apt-get -t jessie install ruby2.0
  • Проверяем: gem –version . Результатом будет что-то типа 2.0.14
  • Теперь смотрим на “инсталляционный документ” от redmine: http://www.redmine.org/projects/redmine/wiki/RedmineInstall
  • Переходим к шагу 4.  Выполняем: gem install bundler
  • Переходим в корневой каталог redmine. Туда, где лежат файлы: config.ru, Gemfile,…
  • Выполняем: bundle install –without development test
    • Выполнение прерывается. Нет заголовочных фалов: (mkmf.rb can’t find header files for ruby at /usr/lib/ruby/include/ruby.h). Добавляем пакет разработчика:  apt-get -t jessie install ruby2.0-dev
    • И вторая попытка тоже неудачна. Не находит -lmysqlclient . Попробуем доставить девелоперскую библиотеку для MySQL: apt-get -t jessie install libmysqlclient-dev
  • А вот теперь – порядок. Дальше то, ради чего всё и затевалось, обновление модулей для apache: aptitude -t jessie upgrade libapache2-mod-passenger ruby-passenger
  • Сравниваем версии запущенных модулей из лога apache с теми, что поставились на предыдущем шаге.
  • Попробуем включить сайт обратно a2ensite <site>; apache2ctl restart
  • Упало… Ошибка 500. Ладно, попробуем перегенерить session store (rake generate_secret_token) из шага 5 инструкции. Не помогает. В файл production.log идёт ошибка: ActionView::Template::Error (incompatible character encodings: ASCII-8BIT and UTF-8)
  • Пробуем заменить адаптер базы данных на mysql2 . Как оказалось, об этом написано в инструкции , да и в разборе ошибки.  😳
  • Теперь запускает, но какая-то ошибка с правами доступа. Сделаем так, как написано на экране. Gemfile.lock пусть принадлежит “пользователю сайта”.
  • О-о-о! Работает.  😛