Windows7 + JRuby + Redmine + PortableGit で持ち運び可能なRedmineを作る

仕事でRedmineを使っていると、私用でもRedmineが使いたくなったため、持ち運び可能なRedmineを構築した時のメモ。

すでに存在しているもの

以下のサイトにて、構築済のRedmineへのリンクと構築時の紹介がありました。
記載内容がとても参考になり、助かりました。ありがとうございました。
Haru's blog - JRuby で Redmine や ChiliProjectを動かす


ただ、バージョンアップの方法などがわからないと自分で運用するときに困るので、参考にして自力でセットアップすることに。

実際の手順

構築する環境
Javaの確認

自分の環境には、JRE6が以下の場所に存在。
C:\Program Files\Java\jre6


JRubyのダウンロード・インストール

JRubyのサイトより入手(自分の場合、バージョンは1.6.7)。

環境変数追加

JRubyの環境で使うものを、ユーザ環境変数として追加。

環境変数
JAVA_HOME (JRE6の場所)
JRUBY_HOME (JRubyの場所)
PATH %JAVA_HOME%\bin;%JRUBY_HOME%\bin
JRubyの動作と現在のgem listを確認

jruby -v
jruby 1.6.7 (ruby-1.8.7-p357) (2012-02-22 3e82bc8) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_17) [Windows 7-amd64-java]

gem list
*** LOCAL GEMS ***

rake (0.8.7)
sources (0.0.1)

パッケージの追加インストール

最終的なgemの状態は以下の通りとなるため、不足しているものを追加する。

*** LOCAL GEMS ***

actionmailer (2.3.14)
actionpack (2.3.14)
activerecord (2.3.14)
activerecord-jdbc-adapter (1.2.2)
activerecord-jdbcsqlite3-adapter (1.2.2)
activeresource (2.3.14)
activesupport (2.3.14)
i18n (0.4.2)
jdbc-sqlite3 (3.7.2)
rack (1.1.1)
rails (2.3.14)
rake (0.8.7)
sources (0.0.1)


ちなみに、Redmine.JP Blog - Redmine 1.3をCentOS 6にインストールする手順 によると、

なお、Redmineを実行するにあたり開発者用ドキュメントは不要なので、本手順では全てのgemパッケージのインストール時に --no-rdoc --no-ri を指定しています。

とのことなので、以下の手順もその方針で進める。

Railsのインストール

jruby -S gem install rails -v=2.3.14 --no-rdoc --no-ri
Fetching: activesupport-2.3.14.gem (100%)
Fetching: activerecord-2.3.14.gem (100%)
Fetching: actionpack-2.3.14.gem (100%)
Fetching: actionmailer-2.3.14.gem (100%)
Fetching: activeresource-2.3.14.gem (100%)
Fetching: rails-2.3.14.gem (100%)
Successfully installed activesupport-2.3.14
Successfully installed activerecord-2.3.14
Successfully installed actionpack-2.3.14
Successfully installed actionmailer-2.3.14
Successfully installed activeresource-2.3.14
Successfully installed rails-2.3.14
6 gems installed

Rackのインストール

Redmine.JPに従い、1.1.1をインストールする。

jruby -S gem install rack -v=1.1.1 --no-rdoc --no-ri
Fetching: rack-1.1.1.gem (100%)
Successfully installed rack-1.1.1
1 gem installed

i18nのインストール

jruby -S gem install i18n -v=0.4.2 --no-rdoc --no-ri
Fetching: i18n-0.4.2.gem (100%)
Successfully installed i18n-0.4.2
1 gem installed

SQLiteまわりのインストール

activerecord-jdbcsqlite3-adapterをインストールすれば、依存している他のものもインストールされるとのこと。
バリケンのRuby日記 - JRubyでRubyGems

jruby -S gem install activerecord-jdbcsqlite3-adapter --no-rdoc --no-ri
Fetching: activerecord-jdbc-adapter-1.2.2.gem (100%)
Fetching: jdbc-sqlite3-3.7.2.gem (100%)
Fetching: activerecord-jdbcsqlite3-adapter-1.2.2.gem (100%)
Successfully installed activerecord-jdbc-adapter-1.2.2
Successfully installed jdbc-sqlite3-3.7.2
Successfully installed activerecord-jdbcsqlite3-adapter-1.2.2
3 gems installed

SQLite3本体をダウンロード

ダウンロードページ(http://www.sqlite.org/download.html)から、sqlite-dll-win32-x86-3071000.zip をダウンロード・解凍し、C:\Windows\System32 などのパスの通っているところへ移動


Subversionの入手

Redmineを入手するため、Subversionのバイナリを入手する。
今回は手っ取り早く入手したかったため、メンテナンスされていないのを覚悟の上でTigris - 1.6.x (archived, win32, apache 2.2.x)より、svn-win32-1.6.6.zipを入手。任意のところへ解凍。

Redmine本体のダウンロード

先程ダウンロードしたsvn.exeを利用し、Redmine本体をダウンロードする

\path\to\svn.exe checkout http://redmine.rubyforge.org/svn/branches/1.3-stable redmine

Redmineを起動する前の設定

database.ymlの編集

production:
adapter: jdbcsqlite3
database: db/redmine.db
encoding: utf8

development:
adapter: jdbcsqlite3
database: db/redmine_development.db
encoding: utf8

test:
adapter: jdbcsqlite3
database: db/redmine_test.db
encoding: utf8

セッションストア秘密鍵の生成

Redmineのインストールディレクトリへと移動して、実行

rake config/initializers/session_store.rb
(in D:/Jredmine/redmine)
Please install RDoc 2.4.2+ to generate documentation.

DBの初期化

Redmineのインストールディレクトリにて実行

rake db:migrate RAILS_ENV=production


ちなみに、Redmine1.3.1では以下のエラーが出ることがある。

Please install RDoc 2.4.2+ to generate documentation.
Missing these required gems:
rubytree >= 0

You're running:
ruby 1.8.7.357 at D:/Jredmine/jruby/jruby-bin-1.6.7/jruby-1.6.7/bin/jruby.exe
rubygems 1.8.15 at D:/Jredmine/jruby/jruby-bin-1.6.7/jruby-1.6.7/lib/ruby/gems
/1.8, C:/path/to/.gem/jruby/1.8

Run `rake gems:install` to install the missing gems.

gemが足りないと言われるが、実際には、Redmine1.3.1のバグの模様。
究極のエンジニアへの道 - redmine のセットアップをするブヒー
stackoverflow - “missing required gems” error when creating the database


自分の場合は、リビジョン8214に記載されている以下のファイルを、trunk(リビジョン9125)のものと差し替えたところ、migrateすることができた。

  • config\environment.rb
  • lib\redmine\menu_manager.rb
  • test\unit\lib\redmine\menu_manager\menu_item_test.rb
デフォルトデータ投入

言語を求められたら、「ja」

rake redmine:load_default_data RAILS_ENV=production
Select language: ar, bg, bs, ca, cs, da, de, el, en, en-GB, es, eu, fa, fi, fr,
gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, s
k, sl, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] ja

Default configuration data loaded.

Redmineの起動

jruby script/server webrick -e production
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-03-06 05:36:59] INFO WEBrick 1.3.1
[2012-03-06 05:36:59] INFO ruby 1.8.7 (2012-02-22) [java]
[2012-03-06 05:36:59] INFO WEBrick::HTTPServer#start: pid=5860 port=3000

起動確認

ブラウザで以下のURLを確認。

http://localhost:3000/

停止

コマンドプロンプト上で、「Ctrl + C」し、以下の表示で停止完了。

[2012-03-06 05:39:45] INFO going to shutdown ...
[2012-03-06 05:39:45] INFO WEBrick::HTTPServer#start done.
Exiting

Gitリポジトリの作成

とりあえずのリポジトリは、Windows7 + PortableGit + GitHub の環境を構築する で作成したGitHub用を再利用。

$ cd /d/Jredmine/git

$ git --bare init
Initialized empty Git repository in d:/Jredmine/git/

$ cd /d/GitHub/Sample_FileWriter

$ git push /d/Jredmine/git master
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 1.85 KiB, done.
Total 5 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (5/5), done.
To d:/Jredmine/git
* [new branch] master -> master

Git用に、Redmineのconfiguration.ymlファイルを編集

config/configuration.yml を開き、130目あたりの「scm_git_command」に「git.cmd」のファイルパスを記入

scm_subversion_command:
scm_mercurial_command:
scm_git_command: \path\to\Git\cmd\git.cmd
scm_cvs_command:
scm_bazaar_command:
scm_darcs_command:


注意書きを見ると、

# On Windows + JRuby 1.6.2, path which contains spaces does not work.
# For example, "C:\Program Files\TortoiseHg\hg.exe".
# If you want to this feature, you need to install to the path which does not contains spaces.
# For example, "C:\TortoiseHg\hg.exe".

とのこと。
また、Redmine.JPにあるような、

bareリポジトリWindows上で作成する場合、PATH環境変数の末尾に以下の内容を追加してください:
;%GIT_PATH%\cmd;%GIT_PATH%\bin;

はなくても大丈夫そう。

Redmine上でリポジトリパスの指定

プロジェクトの設定より、以下のようなgitのパスを指定。
(HEADファイルなどがある階層よりも一つ上のフォルダ階層を指定)

D:\Jredmine\git


以上で、環境構築は完了。

*1:Redmine.JP - アップグレード を読むと、SVNチェックアウトのみで良さそうで楽に見えたため