Redmine プラグイン開発の今後の予定
久しぶりのブログの更新です。また、前回から期間があいてしましました。
しかし、新居での生活も落ち着き、ネットも無事につながったので、
ブログや Redmine プラグイン開発の活動を再開しようかと思います。
簡単な今後の開発予定です。
Redmine 1.4 対応をやっている途中だったのですが、
もう Redmine 2.0 が出てしまっています。
とりあえず、 Redmine 2.0 対応を優先してやる予定です。
ただ、どれくらいかかるかわからないので、 リリース予定日は未定です。
Redmine 1.4 でも大きく変更になりましたし、
Redmine 2.0 も Rails3 になったので、こちらも大きく変わっていそうです。
旧バージョンでも動作するようにするのは、難しいと思われるため、
各プラグインもメジャーバージョンをあげて、対象を 2.0 以降にすることにしました。
用語集と TestLink Link に関しては Redmine 1.4.X 対応は終ってなかったのですが、 2.0 と一度にやってしまった方がやりやすそうなので、 Redmine 1.4 で動作するバージョンのリリースはできないかもしれません。
TestLink Link は今まで自分が TestLink を使わなくなったこともあって、
開発をほとんどやめていました。
私は依然 TestLink は使ってないのですが、会社ではだいぶ使われるようになり、
TestLink Link を入れることになったので、今後は TestLink Link も少し優先度をあげて開発 しようかなと思っています。
Redmine 2.X の Windows でのインストール
Redmine 2.0 以降では Rails 3 対応となり、 Redmine およびプラグインのインストール方法が少し変更になりました。 Redmine 1.4 のインストール方法 から基本的な流れはあまり変わっていないのですが、コマンド等が少し変更となっているので、 改めてまとめてみました。
対象環境
環境 | 使用 |
---|---|
OS | Windows |
Web サーバー | WEBrick |
データベース | SQLite |
必要プログラムのインストール
Ruby, RubyGems
Ruby は 1.8 版では 1.8.7、 1.9 版では 1.9.2 以上が必要です。また、パッケージ管理の RubyGems も使います。 いろいろ一緒にインストールしてくれるオールインパッケージのものがいいと思います。
- Rumix
- ただし、 1.9 版 は 1.9.1 のため使えません
- RubyInstaller for Windows
Ruby のインストールに関して詳しくは以下の記事をご覧下さい。 インストール後、 RubyGems 自身を使って、 RubyGems を最新版にしておきます。
$ gem update --system
SQLite 3
Redmine(Rails)から SQLite 3 利用する場合には sqlite3.dll をインストールする必要があります。圧縮ファイルをダウンロードして、 ファイル内の sqlite3.dll を ruby.exe のあるフォルダーか環境変数 PATH で指定されているフォルダーに置きます。

Redmine のインストール
本体のダウンロード
RubyFoge から Redmine(redmine-2.0.3.zip) をダウンロードします。 圧縮ファイルをインストールしたいところに展開します。以降のコマンドは展開先のトップフォルダーで実行します。
必要パッケージのインストール
Redmine では必要な gem パッケージのインストールには bundler を使います。 これは必要なパッケージをまとめてインストールしてくれるツールです。まず、 bundler 自身をインストールします。
$ gem install bundlerインストール済みの bundle を使う場合、 1 つ目で失敗する時があります。
使用前に bundle をアップデートして下さい。
gem update bundle
次に bundler を実行し、パッケージをインストールします。
この時、 開発やテスト用のパッケージを除いてインストールするのですが、 rmagick のパッケージは Windows ではインストールが大変なので、 こちらもインストールの対象から除いておきます。
$ bundle install --without development test rmagick--without オプションで rmagick を指定してもインストールしようとする場合があります。 その場合は (インストールフォルダー)/Gemfile の rmatick を指定している部分をコメントアウトします。
# Optional gem for exporting the gantt to a PNG file, not supported with jruby platforms :mri, :mingw do 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 endrmagick を外してインストールすると、 bundle 完了後も、次節の rake コマンドを実行する時、 rmagick のインストールエラーが出る場合があります。
その場合は、 一度 OS を再起動してください。
rmagick はオプションなので、なくてもかまわないのですが、 頑張ってインストールするとガントチャートを png ファイルにエクスポートできるようになります。
rmagick の gem のインストール方法は以下のサイトで紹介されていました。
DevKit のインストール
Redmine Ver. 2.2.3 では bundle 時に json のパッケージのインストールに失敗します。Installing json (1.7.7) Gem::InstallError: The 'json' 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'DevKit をインストールしてということなので、これをインストールします。
まず、エラーメッセージに出ている rubyinstaller.org から DevKit-tdm-32-X.X.X-XXXXXXXX-XXXX-sfx.exe をダウンロードします。

自己解凍形式の圧縮ファイルなので、実行して、適当なところに展開して下さい。
次に展開したフォルダーへ行き、 dk.rb を使ってインストールします。
ruby dk.rb init ruby dk.rb installjson では rmagick と違って、再度 bundle すると問題なくインストール出来ます。
DevKit のインストールに関して詳しくは以下の記事をご覧下さい。
sqlite3 のエラーの回避
ruby 2.0.0 を使用した場合、後述するデータベースの作成でエラーが出ます。
d:/redmine/redmine-2.3.2 $ rake generate_secret_token
rake aborted!
Could not find gem 'sqlite3 (>= 0) x86-mingw32' in the gems available on this machine.
d:/redmine/redmine-2.3.2/config/boot.rb:6:in `<top (required)>'
これは x86-mingw32 版の sqlite3 に問題があるためです。
解決方法に関しては、以下の記事を参考にしてください。
データベースの作成
Rails では通常の運用時に使う production と開発用の development の 2 つの動作モードがあります。development だとキャッシュしなくなるため、変更がすぐ反映されますが、動作が遅くなります。
データベースも動作モードごとに用意する必要があります。
今回は development で主に説明します。
データベースの設定
データベースの設定は config/database.yml のファイルで行います。config/database.yml.example というサンプルファイルがあるので、これを参考にファイルを作成します。 (サンプルがないこともあります)
SQLite を使う場合の記述は結構簡単です。
development: adapter: sqlite3 database: db/redmine.dbdatabase で指定した名前 db/redmine.db でデータベース用のファイルが作成されます。
production 用のデータベースの場合は development を production に変更して記述します。
データベースの作成
以下のコマンドを順番に実行していきます。$ rake generate_secret_token $ rake db:migrate $ rake redmine:load_default_data最後のコマンドでは対象言語が聞かれるので、 ja を指定します。
赤字の部分が 2.0 から変わったコマンドです。 以前は
rake generate_session_store
というコマンドでした。production モードのデータベースを作成する場合は環境変数 RAILS_ENV に production を指定してから実行します。
以上でインストールは完了です。
Web サーバーの起動とログイン
使用する場合には Web サーバー(WEBrick) を起動します。$ ruby script/rails server webrickこの起動コマンドも以前と少し変更になりました。(旧 : ruby script/server webrick)
production モードで起動する場合は
-e production
のオプションを付けます。この WEB サーバーのアドレスは http://127.0.0.1:3000/ です。
Windows の場合、 http://localhost:3000/ だとアクセスできないことがあります。
最初は次のユーザでログインして下さい。
- ログイン: admin
- パスワード: admin
プラグインのインストール
Redmine のプラグインのインストールにも変更があります。 手順は以下のようになります。- ディレクトリを以下に置く(圧縮ファイルの展開等で)
(インストールディレクトリ)/plugins
- プラグイン用のデータベース作成
$ rake redmine:plugins:migrate
- Web サーバーの再起動
DB 作成用のコマンドは従来の
rake db:redmine_plugins
でも実行できるのですが、
望ましくないので、上記のコマンドを使うようにといった注意書きが出てきます。
追記 : 2013-03-02
Redmine-2.2.3 インストール時に引っかかった点の対処法を追加しました。追記 : 2013-08-15
Ruby-2.0.0 + Redmine-2.3.2 でインストール時に引っかかった点(sqlite3)の対処法を追加しました。タイトルも Redmine 2.0 から 2.X に変更しました。
追記 : 2014-03-24
Redmine 2.4 で上手く行かなかった点等を修正しました。ブログ記事のパンくず(カテゴリ)リスト
今回は パンくずリスト を FC2 ブログで、表示する方法です。
パンくずリストというのは、対象までの道のりを表したリストです。
ブログでは、記事のカテゴリ階層を表したリストがこれにあたります。
タグとカテゴリ
以前、タグのリストについて書きました。 タグとカテゴリの違いについて簡単に説明しておきます。タグは言い換えるとキーワードで、ひとつの記事に複数のタグを付けることができます。
カテゴリは "脊椎動物/ 哺乳類/ 霊長類/ ヒト科" のような分類です。 記事は必ずひとつのカテゴリに属し、カテゴリを複数持つということはありません。 そのかわり、カテゴリが階層を持つことはあります。
FC2 ブログでのカテゴリ
通常、パンくずリストは、カテゴリやフォルダーのように階層化しているものを表示するので、 ループや再帰処理を使って、順に表示していきます。 しかし、 FC2 ブログのカテゴリでは階層は最大 2 段で固定となっており、 ループのような処理は行いません。全ての記事はなんらかのカテゴリに属しています。 カテゴリを指定していない場合も 未分類 のカテゴリに入ります。
その上に親カテゴリがあります。 こちらはある場合とない場合があります。
FC2 ブログでは階層は 2 段までなので、カテゴリの階層はこの 2 つになります。
- 親カテゴリ (あれば)
- 記事のカテゴリ
パンくずリストの表示
それでは、パンくずリストの実際の書き方に移りたいと思います。これは各記事に表示するので、<!--topentry--> <!--/topentry--> のブロック内に書きます。
リンクではなくただのカテゴリ名のリストだと次のようになります。
<!--parent_category--> <%topentry_parent_category> » <!--/parent_category--> <%topentry_category>親カテゴリはある場合とない場合がありますので、ブロック変数を使います。 <!--parent_category--> が親カテゴリがあるかないかで切り替わるブロック変数です。
<%topentry_parent_category> が親カテゴリの単変数です。
<%topentry_category> 単変数が記事の属しているカテゴリになります。
ちなみに » は >> を一文字にしたような html の特殊記号です。
これで下の例のようなリンクなしのパンくずリストとなります。
インターネット » ブログカスタマイズ
カテゴリへのリング
前節のパンくずリストをカテゴリ名がリンクになるようにしましょう。カテゴリを指定したブログページへのリンクはカテゴリ、親カテゴリそれぞれで用意されています。
対象 | カテゴリ名 | リンク |
---|---|---|
親カテゴリ | <%topentry_parent_category> | <%topentry_parent_category_link> |
記事のカテゴリ | <%topentry_category> | <%topentry_category_link> |
各タグがリンクになるように先ほどの例を直すと次のようになります。
<!--parent_category--> <a href="<%topentry_parent_category_link>"><%topentry_parent_category></a> » <!--/parent_category--> <a href="<%topentry_category_link>"><%topentry_category></a>