rmagick を回避した Redmine 1.4 (trunk) のインストール
Redmine の 1.4 対応用に一足早く開発版(trunk:r9244)をインストールしてみました。
このとき、かなりハマったのですが、なんとかインストールできたので、解決方法を書いておきます。
同じポイントで困っているようでしたら、参考にしてみてください。
ハマるポイントは gem の rmagick (2.13.1) のインストールです。
これをインストールするのは相当大変なので、これ抜きで Redmine をインストールしています。
インストールした環境は Windows ですが、回避方法は Linux 等でも使えると思います。
ソースの入手
まず、 Redmine のソースを入手します。 開発版なので、 Subversion からチェックアウトします。
Ruby のインストール
Redmine 1.4 の一番の売りはおそらく Ruby の 1.9 対応でしょう。私の場合 Ruby は いろいろ一緒にインストールしてくれる rumix を使っていました。 これを 1.9 も使おうと思ったのですが、 1.9 のバージョンで用意されていたパッケージが 1.9.1 とちょっと古く(2012-3-23 時点)、 インストールできませんでした。
そこで、英語ですがこちらもいろいろ一緒にインストールしてくれる RubyInstaller で 1.9.3 をインストールしました。 そのあと、念のため、 gem を最新版にアップデートしています。
gem update --system
必要なパッケージのインストール (ハマる前まで)
Redmine のいつもの手順でインストールします。最初の rake コマンドを実行するところで、メッセージがでて止まります。
$ rake generate_session_store
Redmine requires Bundler. Please install it with `gem install bundler`.
いわれた通りに bundler パッケージのインストールをすると、これは上手くいきます。
$ gem install bundler
もう一度、 rake コマンドを実行すると今度は別なメッセージがでます。
$ rake generate_session_store
Some gems may need to be installed or updated. Please run `bundle install --without development test`.
また、いわれた通りにコマンドたたくと、必要な gem パッケージのインストールをダーっとやってくれます。
$ bundle install --without development testおぉ、便利と思っていたら、 rmagick のところで失敗してしまいました。
Installing rmagick (2.13.1) Gem::InstallError: The 'rmagick' native gem requires installed build tools. Please update your PATH to include build tools or download the DevKit from 'http://rubyinstaller.org/downloads' and follow the instructions at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit' An error occured while installing rmagick (2.13.1), and Bundler cannot continue. Make sure that `gem install rmagick -v '2.13.1'` succeeds before bundling.ここがハマるポイントです。 メッセージに書かれているように DevKit をインストールしてみても rmagick のところで、 やっぱり失敗します。
DevKit のサイトに書かれている DevKit のテストは上手くいったので、 DevKit のインストール自体は問題なさそうでした。
いろいろ試したけど、上手くいきませんでした。 ググって調べてみると、 rmagick 2.13.1 のインストールは結構みんなハマるみたいです。
で、わかったのは Windows に rmagick 2.13.1 をインストールするのは、すっごく大変ってことだけです。
追記 2012-03-29
教えていただいた方法によると、 次項のようにわざわざコメントアウトしなくても、 省略するパッケージの指定に rmagick を追加すればスキップできました。$ bundle install --without development test rmagick
追記 2012-04-18
--without の指定で rmagick をスキップした場合、 rake コマンドを実行するところで、引き続き rmagick のインストールエラーが出力されることがあります。この場合は、 一旦 OS を再起動するとうまくいくようです。
rmagick のインストールをスキップさせる
前のバージョンではこの rmagick はオプションだったので、 今度は、なんとか rmagick なしでインストールできないか 調べてみました。Redmine のソースの直下に今までのバージョンにはなかった Gemfile というファイルがあります。
中身を確認してみると、どうやら bundler ではこのファイルに書かれたパッケージを順にインストールしていっているみたいです。
rmagick の部分は次のような記述です。
# Optional gem for exporting the gantt to a PNG file group :rmagick do # RMagick 2 supports ruby 1.9 # RMagick 1 would be fine for ruby 1.8 but Bundler does not support # different requirements for the same gem on different platforms gem "rmagick", ">= 2.0.0" end
やっぱり、オプションみたいです。
ガントチャートを PNG ファイルにエクスポートするのに使うと書かれていますが、 無くても困りません。
この rmagick の部分をコメントアウトします。
# Optional gem for exporting the gantt to a PNG file #group :rmagick do # RMagick 2 supports ruby 1.9 # RMagick 1 would be fine for ruby 1.8 but Bundler does not support # different requirements for the same gem on different platforms # gem "rmagick", ">= 2.0.0" #endコメントアウトした後、再度 bundle を実行します。
$ bundle install --without development test
rmagick がスキップされて、 今度は止まることなく、 残りの gem パッケージのインストールが行われました。
後は rake generate_session_store から、いつものように インストールをつづけると無事に Redmine のインストールが完了しました。
以前のバージョンの Redmine では、 Rails や Rack など動作に必要な gem パッケージを redmine.org のインストール方法のページで確認しながら インストールする必要があって、面倒でした。 1.4 からは Bundler を使って、自動でできるようになっています。
これ自体は非常に嬉しい改良なのですが、問題はオプションなのにインストールの難しい rmagic まで、 そこに含まれてしまっている点です。
実際の 1.4.0 がリリースされるときにはここが改良されているといいのですが。
Redmine 1.4.0 リリース
ルーティングの問題
ルーティングの設定が変わったため、多くのプラグインが動作しなくなる可能性があると前に書いていました。 リリースされたもので確認したところ、 ルーティングの設定の変更は加えられていて、やっぱり、大量のプラグインが動作しなくなるのでははいかと思われます。この対応方法は前の記事でも書いたのですが、もう少し簡単な記述ができるらしいです。 プラグインで Internal Error になり、 エラーログが以下のようなメッセージだった場合がルーティングの問題が発生している時です。
No route matches ....この時、以下の内容で <plugin_dir>/config/routes.rb を作成します。 routes.rb すでにある場合は、ブロック内の行を追加します。
ActionController::Routing::Routes.draw do |map| map.connect ':controller/:action/:id' end
ただし、これだけで動くようになるプラグインは結構幸運な方で、 プラグインによっては、あちこち直す必要があります。
ちなみに用語集プラグインは、一応動作するようにはなったのですが、 もう少し、ルーティングの設定を直した後、テストしてからリリースしようかなと思ってます。
インストール
もう一つ、 Redmine 1.4.0 だとインストールするとき、 rmagick のパッケージがインストールできなくてハマりそうという記事を書きました。こちらは redmine.org のインストールの説明で、ちゃんと rmagick なしでインストールする方法の説明がされていました。
Redmine 1.4 の Windows でのインストール
以前、 Redmine 1.4.0 の開発版でのインストール方法ちょっと書いたのですが、 正式にリリースされたので、インストール方法をまとめなおしてみました。
元にしているのは、 redmine.org のインストールページです。
対象環境
対象環境は以下のものです。環境 | 使用 |
---|---|
OS | Windows |
Web サーバー | WEBrick |
データベース | SQLite |
本格的に運用する場合は、 Linux, Apache+Mongrel, MySQL などでやった方がいいと思います。
必要プログラムのインストール
Ruby, RubyGems
Ruby は 1.8 版では 1.8.7、 1.9 版では 1.9.2 以上が必要です。また、パッケージ管理の RubyGems も使います。 1.9 以降では RubyGems も標準になってますが、 いろいろ一緒にインストールしてくれるオールインパッケージのものがいいと思います。
- Rumix
- ただし、 1.9 版 は 1.9.1 のため使えません
- RubyInstaller for Windows
インストール後、 RubyGems 自身を使って、 RubyGems を最新版にしておきます。
$ gem update --system
SQLite 3
Redmine(Rails)から SQLite 3 利用する場合には sqlite3.dll をインストールする必要があります。 といっても、ファイルをダウンロードして、パスの通ったところに置くだけです。まず、ダウンロードページが dll のパッケージをダウンロードします。

圧縮ファイル内の sqlite3.dll を ruby.exe のあるフォルダーか環境変数 PATH で指定されているフォルダーに置きます。
Redmine のインストール
本体のダウンロード
RubyFoge から Redmine(redmine-1.4.0.zip) をダウンロードします。 圧縮ファイルをインストールしたいところに展開します。以降のコマンドは展開先のトップフォルダーで実行します。
必要パッケージのインストール
以前は gem で必要なパッケージを一つ一つインストールする必要がありましたが、 Redmine 1.4.0 からは bundler を使って、 一気に入れられるようになりました。まず、 bundler 自身をインストールします。
$ gem install bundler
bundler を実行し、必要な gem パッケージをインストールします。
この時、 開発やテスト用のパッケージを除いてインストールするのですが、 rmagick のパッケージも Windows ではインストールが大変なので、 インストールの対象から除いておきます。
$ bundle install --without development test rmagick
ちなみに頑張って rmagick をインストールするとガントチャートを png ファイルにエクスポートできるようになります。
rmagick を外してインストールすると、 bundle 完了後も、次節の rake コマンドを実行する時、 rmagick のインストールエラーが出る場合があります。
その場合は、 一度 OS を再起動してください。
データベースの作成
Rails では通常の運用時に使う production と開発用の development の 2 つの動作モードがあります。development だとキャッシュしなくなるため、変更がすぐ反映されますが、動作が遅くなります。
データベースも動作モードに合わせて用意する必要があります。
データベースの設定
データベースの設定は config/database.yml のファイルで行います。config/database.yml.example というサンプルファイルがあるので、これを参考にファイルを作成します。
SQLite を使う場合は記述は結構簡単です。 production, development 版はそれぞれ以下のようになります。
production: adapter: sqlite3 database: db/redmine.db
development: adapter: sqlite3 database: db/redmine.dbdatabase で指定した名前 db/redmine.db でデータベース用のファイルを作成します。
もし、 動作モードを切り替えて、平行して使いたい場合は、 それぞれ別の名前を指定するようにしてください。
データベースの作成
development 場合、以下のコマンドを順番に実行していきます。$ rake generate_session_store $ rake db:migrate $ rake redmine:load_default_data最後のコマンドでは言語が聞かれるので、 ja を指定します。
動作モードは環境変数 RAILS_ENV で指定します。 上記のコマンドは指定していませんが、指定されていない場合は development になります。
production の場合は以下のようにになります。
$ RAILS_ENV=production rake generate_session_store $ RAILS_ENV=production rake db:migrate $ RAILS_ENV=production rake redmine:load_default_dataコンソールなどの都合で上記のような変数の指定ができない場合、 最初に指定してからコマンドを実行します。
> set RAILS_ENV=production > rake generate_session_store > rake db:migrate > rake redmine:load_default_data
以上でインストールは完了です。
Web サーバーの起動とログイン
使用する場合には Web サーバー(WEBrick) を起動します。このときの起動モードはオプションで指定します。こちらもデフォルトは development です。
$ ruby script/server
$ ruby script/server -e productionこの WEB サーバーのアドレスは http://127.0.0.1:3000/ です。
Windows の場合、 http://localhost:3000/ だとアクセスできないことがあります。
最初は次のユーザでログインして下さい。
- ログイン: admin
- パスワード: admin