Ubuntu の Redmine をやっと 0.1.0.0 から 0.1.3.0 へバージョンアップした

重い腰を上げて、いろいろ作業をした。腰が痛くなった。apt-getで得られるライブラリがいろいろ不足しているのでまず Ubuntu 自体を 8.04 LTS から 10.04 LTS にあげて、そのあとでやることにした。Ubuntu自体はUIからさくっとアップグレード。いくつかのファイルがデフォルトに戻ったけど、特に問題なし。

その先はちょうど同じようなことをされているブログを最終的にいくつか参照してなんとかなりました。

まずはいろいろ指定されているバージョンのライブラリを入れた。

$ sudo gem install rubygems-update -v 1.5.3
$ sudo gem install rack -v=1.1.2
$ sudo gem install rake -v=0.8.7
$ sudo gem install rdoc -v=2.4.3

と対象バージョンを入れた。 rubygemsは新しすぎるとダメなので、わざわざ古いのを入れて、新しいのをアンインストール。

$ sudo gem uninstall rubygems-update

Redmine を落としておく

$ sudo wget http://rubyforge.org/frs/download.php/75597/redmine-1.3.0.tar.gz
$ sudo tar xzf redmine-1.3.0.tar.gz


設定とプラグインをコピー(Emailは使ってなかったのでemail.ymlはコピーせず。プラグインも一つだけ)

$sudo cp /var/redmine/config/database.yml /var/redmine-1.3.0/config/
$sudo cp /var/redmine/vendor/plugins/redmine_work_time /var/redmine-1.3.0/vendor/plugins/

添付ファイルを移動(過去からの蓄積でフォルダ全体のサイズがえらいことになっててびびったけど、1テラHDDなのでいまのところ問題なし)

$sudo mv /var/redmine/files/* /var/redmine-1.3.0/files
||

セッションデータを生成する。

>||
$ sudo rake generate_session_store

データベースをマイグレーションする。

$ sudo rake db:migrate RAILS_ENV="production"
$ sudo rake db:migrate:upgrade_plugin_migrations RAILS_ENV=production
$ sudo rake db:migrate_plugins RAILS_ENV=production

キャッシュとセッションファイルのクリアをする。

$ rake tmp:cache:clear
$ rake tmp:sessions:clear

最後に、Redmine をさしかえ。

$ sudo mv redmine redmine-old
$ sudo mv redmine1.3.0 redmine

アクセスしてみると

no such file to load -- net/https (LoadError)

とかでるので、

$ sudo apt-get libopenssl-ruby

で、Apacheを再起動もせずに見てみるとPassengerの何かがないといって落ちている。再起動していないせいだろうと思って再起動したら今度はサーバエラーになってしまった。一瞬見えていたのは何だったのか。いずれにせよ困ったので、passengerから最新にすることにした。

$ sudo gem install passenger

で 0.2.6 だった passenger が最新の 0.3.11 になった。しかし、

$ sudo passenger-install-apache2-module

Curl development headers with SSL support... not found

で失敗するので、エラー内で言われたとおりに、libcurl4-openssl-devを入れることにする。

$ sudo apt-get libcurl4-openssl-dev

ぶじ成功。しかし、この先どうも、古いバージョンを参照する設定が何処かに残ってしまう。これまたちゃんと指定されたとおりに

/etc/apache2/mods-available/passenger.conf

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.11
PassengerRuby /usr/bin/ruby1.8

と書いてもどっか古いのを見ているようだ。

実は一行目は

/etc/apache2/mods-available/passenger.load

に書くのが正解(というか、そこに古い参照が残っていたので修正した)これでなんとか動いた。