воскресенье, 14 сентября 2014 г.

debian 7: ставим redmine 1.4

Предисловие: заметка найдена в черновиках и частично может быть не актуальна, вдобавок "гуру" рекомендуют использовать виртуальные окружения, там сильно меньше проблем с версиями пакетов. Но всё-равно размещу для истории.

Есть сервер, на котором до сих пор был редмайн 0.9.3 (еще 5 ветка), а нужна последняя. В данном случае используется режим massenger через apache.
Особенность дебиан-версии редмайна в том, что файлы раскиданы по разным местам, в частности
/etc/redmine - настройки
/usr/share/redmine - исполняемые файлы, плагины... то, что меняться не должно
/var/lib/redmine - файлы, загружаемые пользователями

Открываем и держим перед глазами доку
В частности, когда и как обновлять базу итд., и

Посмотреть, что за версия стоит
RAILS_ENV=production apps/redmine/script/about


До 1.4 обновиться несложно, всё нужное есть в sid (и возможно unstable):
echo 'deb http://ftp.debian.org/debian/ sid main contrib non-free' > /etc/apt/sources.list.d/sid.list
apt-get update
apt-get install redmine redmine-mysql
дальше оно само обновит нужные библиотеки, хотя чистый sid оставлять - плохая идея, лучше настроить /etc/apt/preferences.d/preferences, добавив туда что-то типа
Package: redmine*
Pin: release n=sid
Pin-Priority: 700

Package: ruby*
Pin: release n=sid
Pin-Priority: 700

Package: *
Pin: release a=stable
Pin-Priority: 600

Насчет n=sid и как вообще писать в данном случае секцию Pin:, мне непонятно, но в таком виде оно у меня работало.
Проверка статусов:
sudo apt-cache policy

штатного rack 1.4.1 достаточно. (а вот для 2.3 потребуется 1.4.5, но не 1.5.х! так как rack 1.5 ломает rails 3.2 (1))

С 1.4.5 можно попробовать так:
cd /usr/share/redmine
cat > Gemfile.local << "EOF"
gem "rack", "~> 1.4.5"
EOF

bundle install
но 1.5 при этом не удаляется.

cd /usr/share/redmine
rake generate_session_store (1.4) или
rake generate_secret_token (2.х)
RAILS_ENV=production rake db:migrate

С обновлением до 2 и 3 версий сложнее, там требуется уже руби 1.9.3, gem mysql2
http://forum.sysadmin.am/tutorials/article/1-howto-install-redmine-23x-on-debian-squeeze-with-apache-passenger/


Ставим 2 версию
Для начала, _необходимо_ поставить ruby 1.9.3
echo 'deb http://apt.netangels.net squeeze main' > /etc/apt/sources.list.d/ruby_1.9.3.list

wget -O - http://apt.netangels.net/gpgkey.key | sudo apt-key add -
apt-get update; apt-get install ruby1.9.3


root@perch-test:~# dpkg -i ruby1.9.3_1.9.3-p392_amd64.deb
(Reading database ... 48794 files and directories currently installed.)
Unpacking ruby1.9.3 (from ruby1.9.3_1.9.3-p392_amd64.deb) ...
dpkg: error processing ruby1.9.3_1.9.3-p392_amd64.deb (--install):
 trying to overwrite '/usr/bin/rake', which is also in package rake 0.9.2.2-4
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
 ruby1.9.3_1.9.3-p392_amd64.deb



cd /usr/bin
equivs-control ruby-rack

cat > ruby-rack << "EOF"
Section: misc
Priority: optional
Standards-Version: 3.9.2

Package: ruby-rack
Version: 1:42
Maintainer: Your Name <your@email.address>
Architecture: all
Description: fake pkgname to block a dumb dependency
EOF

equivs-build ruby-rack
dpkg -i ruby-rack_42_all.deb
https://github.com/musocrat/redmine_on_debian/blob/master/redmine_on_debian.sh
https://github.com/backlogs/redmine_backlogs/issues/852#issuecomment-22464462


Ошибки
Permission denied – /etc/redmine/default/session.yml

проверить, что в настройках хоста есть строки
<IfModule mod_passenger.c>
  PassengerRoot /usr
  PassengerRuby /usr/bin/ruby
  PassengerDefaultUser www-data
</IfModule>

или вписать их в /etc/apache2/mods-available/passenger.conf

В админке не обрабатываются переменные типа {{count}}
найти vendor.rb, обычно это $redmine_dir/vendor/rails/activesupport/lib/active_support/vendor.rb или /usr/lib/ruby/1.8/active_support/vendor.rb
заменить
gem 'i18n', '>= 0.1.3'
на
gem 'i18n', '>= 0.1.3', '< 0.4.0'

Не может создать Gemfile.lock
В том числе при установке
package redmine 1.4.4+dfsg1-2 [modified: usr/share/redmine/Gemfile.lock] failed to install/upgrade: ErrorMessage: subprocess installed post-installation script returned error exit status 2

cd /usr/share/redmine
touch Gemfile.lock
chown www-data:www-data Gemfile.lock
chmod 664 Gemfile.lock
(нужно убедиться, что есть строка PassengerDefaultUser www-data в конфигах апача)

Ошибки с кодировками (актуально для 2.х, 3.х)
vi Gemfile
...
platforms :mri_18, :mingw_18, :mri_19, :mingw_19 do
  group :mysql do
    gem "mysql2", "~> 0.3.11"
  end
end

bundle update

NOTE: Gem::SourceIndex#search is deprecated with no replacement. It will be removed on or after 2011-11-01.
Решение заявляется такое:
gem update --system 1.6.2
но дебиан ругнётся, что будет затронута системная часть. Мы проводить не стали, так работаем.
Надо снижать версию rubygems или обновлять руби.

линки
http://www.redmine.org/projects/redmine/wiki/RedmineUpgrade
http://www.redmine.org/projects/redmine/wiki/RedmineInstall
http://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_using_Debian_package
http://debianforum.ru/index.php?topic=5407.0
https://wiki.blue-it.org/Redmine
http://serverfault.com/questions/448769/upgrading-redmine-activerecord-mysql2-adapter-not-working
http://stackoverflow.com/questions/6065383/gem-source-index-is-deprecated-use-specification-should-i-re-install-gem-or-ra
https://github.com/jbbarth/redmine_omniauth_cas/issues/8

Комментариев нет:

Отправить комментарий