2011頃にさくらVPSに構築したRedmine v1.x.xをRedmine v2.3.x系にアップグレードしようと試みたが、DBのマイグレーションが手間なのと、Subversionからのソースコードダウンロードだと今後のupdateがかなり効率化できる為、この際再インストールする事にした。対象環境はCentOS v5.9だが作業中に幾つか引っかかったところがあるので、今後の備忘録も兼ねて下記に纏めておく。尚、作業に際しては原則下記の公式ブログに記載の手法で進めていく。
参考:Redmine 2.3をCentOS 6.4にインストールする手順 | Redmine.JP Blog
以降はそれ以外の作業や作業中のエラー、留意点、対処法など。
そもそも既存環境のアンインストールは?
DB上のRedmineの全テーブルと/var/lib/redmineディレクトリ、Apache側の設定、シンボリックリンク等を削除すればそれで完了となる。
必要なパッケージのインストール
記事の同項目は基本的に全て実施する。v1.x.x系とは若干必要パッケージが異なる為。
ImageMagickのインストール
最初のCentOS v5.9ユニークのつまずき。v5.9のyumで導入可能なImageMagickのバージョンは6.2.8とRMagickが必要とする6.4.9より低い。その為、既存バージョンをremove後、新バージョンをソースコードよりビルドインストールする。rpmパッケージによるエラーは依存性の欠如エラーが頻発していちいちインストールするのも何なので今回は採らない。
# yum install libjpeg-devel libpng-devel # wget http://www.imagemagick.org/download/ImageMagick.tar.gz # tar xvfz ImageMagick.tar.gz # cd ImageMagick-6.8.6-8 # ./configure # make # make install # ldconfig /usr/local/lib # which convert /usr/local/bin/convert
参考:ImageMagick: Install from Source
因みに上記公式サイトではmake checkを推奨しているが実行したところ自身の環境では下記の箇所以降でスタックするので実行しない方が良い、と思う。
PASS: tests/validate-convert.tap 1
Rubyのインストール
1.9.3をインストールするのだが、ここで合わせて既存の各ツールの更新も含めて実施しておく。
# gem update --system # gem update rake # gem install bundler --no-rdoc --no-ri # gem install rails --version="~> 3.2.3" --no-ri --no-rdoc
MySQLの設定
既存の設定を引き継げる。
Redmineのインストール
リポジトリからソースコードを取得した方が後々の更新が楽なのでこちらを採る。
svn co http://svn.redmine.org/redmine/branches/2.3-stable /var/lib/redmine
設定ファイル config/configuration.yml
下記のサイトに詳細が載っている。
configuration.yml によるRedmineの設定 | Redmine.JP Blog
Gemパッケージのインストール
後は公式に記載の通りの手順でGemパッケージをインストールする。インストール中の代表的なエラーとその対処法は下記の通り。
Can’t install RMagick 2.13.2. You must have ImageMagick 6.4.9 or later.
ImageMagick 6.4.9以上をインストールしていないと出力される。上述の手順で実施いていれば基本的には出ないはず。
# bundle install --without development test Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /usr/local/bin/ruby extconf.rb checking for Ruby version >= 1.8.5... yes checking for gcc... yes checking for Magick-config... yes checking for ImageMagick version >= 6.4.9... no Can't install RMagick 2.13.2. You must have ImageMagick 6.4.9 or later. *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/usr/local/bin/ruby Gem files will remain installed in /usr/local/lib/ruby/gems/1.9.1/gems/rmagick-2.13.2 for inspection. Results logged to /usr/local/lib/ruby/gems/1.9.1/gems/rmagick-2.13.2/ext/RMagick/gem_make.out An error occurred while installing rmagick (2.13.2), and Bundler cannot continue. Make sure that `gem install rmagick -v '2.13.2'` succeeds before bundling.
Package MagickCore was not found in the pkg-config search path.
続いて、RMagickのインストール時に出力されるエラー。
# gem install rmagick -v '2.13.2' Building native extensions. This could take a while... ERROR: Error installing rmagick: ERROR: Failed to build gem native extension. /usr/local/bin/ruby extconf.rb checking for Ruby version >= 1.8.5... yes checking for gcc... yes checking for Magick-config... yes Warning: Found a partial ImageMagick installation. Your operating system likely has some built-in ImageMagick libraries but not all of ImageMagick. This will most likely cause problems at both compile and runtime. Found partial installation at: /usr/local checking for ImageMagick version >= 6.4.9... yes checking for HDRI disabled version of ImageMagick... yes Package MagickCore was not found in the pkg-config search path. Perhaps you should add the directory containing `MagickCore.pc' to the PKG_CONFIG_PATH environment variable No package 'MagickCore' found Package MagickCore was not found in the pkg-config search path. Perhaps you should add the directory containing `MagickCore.pc' to the PKG_CONFIG_PATH environment variable No package 'MagickCore' found Package MagickCore was not found in the pkg-config search path. Perhaps you should add the directory containing `MagickCore.pc' to the PKG_CONFIG_PATH environment variable No package 'MagickCore' found Package MagickCore was not found in the pkg-config search path. Perhaps you should add the directory containing `MagickCore.pc' to the PKG_CONFIG_PATH environment variable No package 'MagickCore' found checking for stdint.h... yes checking for sys/types.h... yes checking for wand/MagickWand.h... no Can't install RMagick 2.13.2. Can't find MagickWand.h. *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/usr/local/bin/ruby Gem files will remain installed in /usr/local/lib/ruby/gems/1.9.1/gems/rmagick-2.13.2 for inspection. Results logged to /usr/local/lib/ruby/gems/1.9.1/gems/rmagick-2.13.2/ext/RMagick/gem_make.out
これは単にPKG_CONFIG_PATHパスが設定されていないことによるものなので、以下の通り設定してインストールすれば良い。
# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig # env | grep PKG_CONFIG_PATH PKG_CONFIG_PATH=/usr/local/lib/pkgconfig # gem install rmagick -v '2.13.2' Building native extensions. This could take a while... Successfully installed rmagick-2.13.2 Installing ri documentation for rmagick-2.13.2 1 gem installed
これで、# bundle install –without development testコマンドは正常完了するはず。
Redmineの初期設定とデータベースのテーブル作成
基本的にここは公式通りに/var/lib/redmine上で下記のコマンドを実行。仮に下記のエラーが発生した場合は、DBのパスワードと設定ファイルに記載のパスワードの整合性が合っているか今一度確認する。
# RAILS_ENV=production bundle exec rake db:migrate rake aborted! Access denied for user 'xxxx_redmine'@'localhost' (using password: YES) /var/lib/redmine/app/models/issue_relation.rb:73:in `<class:IssueRelation>' /var/lib/redmine/app/models/issue_relation.rb:18:in `<top (required)>' /var/lib/redmine/lib/redmine/helpers/gantt.rb:28:in `<class:Gantt>' /var/lib/redmine/lib/redmine/helpers/gantt.rb:21:in `<module:Helpers>' /var/lib/redmine/lib/redmine/helpers/gantt.rb:19:in `<module:Redmine>' /var/lib/redmine/lib/redmine/helpers/gantt.rb:18:in `<top (required)>' /var/lib/redmine/lib/redmine.rb:51:in `<top (required)>' /var/lib/redmine/config/initializers/30-redmine.rb:4:in `<top (required)>' /var/lib/redmine/config/environment.rb:14:in `<top (required)>' Tasks: TOP => db:migrate => environment (See full trace by running task with --trace)
PassengerのインストールとApacheの設定
ここも基本的に公式通りだが、最新のPassengerパッケージは公式に記載の一部設定ディレクティブが異なるので注意。大抵、下記の用にSyntaxチェックで洗い出す。
# /etc/init.d/httpd configtest WARNING: The 'RailsFrameworkSpawnerIdleTime' option is obsolete. Please use 'PassengerMaxPreloaderIdleTime' instead. Syntax OK
RailsFrameworkSpawnerIdleTimeは使えないので、PassengerMaxPreloaderIdleTimeを使うこと。/etc/httpd/conf.d/passenger.confを編集の上、チェックし再発しなければOK。
後続の手順は構築通りに進めればWebブラウザからRedmineを表示できる。以降は、下記の公式ページを参考に初期設定を実施しておく。
参考:Redmineを使い始めるための初期設定 — Redmine.JP
因みに、管理→情報欄の「Plugin assetsディレクトリに書き込み可能」が!マークになっている場合は、以下のようにディレクトリを作成、オーナー変更で対処する。
# mkdir /var/lib/redmine/public/plugin_assets # chown apache:apache /var/lib/redmine/public/plugin_assets/
やはり最新バージョンは色々と改善されていて使いやすい(2年もたてばそんなもんか。。)。次はEclipseとの連携方法について記載しようかな。