redmineのインストールの続き

redmineのインストールにこんなにてこづるとは思ってなかったw、とはいえやり方さえ間違えなければ簡単なので、備忘録として書いておく。

redmineが対応しているrubyは1.8.7

Lionにプリインストールされているrubyは1.8.7なので、そのままで行けそうな感じだけど、gemのバージョンがredmineが想定しているものより高い為、たくさん警告が出てくる。これを回避するにgemのダウングレードという手があるそうだが、システムインストールされているライブラリのダウングレードはあまりしたくないので却下。

rbenvで別のrubyをインストールしてしまう。

twitterで教えてもらった。自分でぐぐった時にはrvmが見つかったのでこれでいいやと思ってたのだけど、どうやらrbenvの方が良いということらしい。情報も新しい。
ただ、Lionにはreadlineライブラリがないので、適宜homebrewでインストールしておく必要があるのはhomebrewでのrubyインストールもrvmでのも同じこと。

ruby-buildをインストールすると、rbenv installコマンドが使えるようになるということらしいので共にインストール。

$ brew install rbenv
$ brew install ruby-build

[参考]http://www.223soft.net/50

readlineのインストールも。

$ brew install readline
$ brew link readline

[参考]ケーズメモ

rubyのインストール

bash_profileにrbenvを読み込むようにしたら、rubyのインストール。
先にインストールしたreadlineライブラリを読み込むようにパスを指定する。

$ CONFIGURE_OPTS="--with-readline-dir=/usr/local" rbenv install   1.8.7-p352
||< 

インストールしたrubyを有効にする。
>|sh|
$ rbenv global 1.8.7-p352
$ rbenv rehash

なお、プリインストールのrubyには/usr/bin/rubyでアクセスできる。

redmineのインストール

redmineではsqlite3を使うことにする。サーバの設定も不要だし、接続設定は不要だし。

redminesubversionリポジトリからcheckoutする。

$ cd /usr/local
$ svn checkout http://redmine.rubyforge.org/svn/branches/1.2-stable redmine

うちの/usr/localは自分のアカウントが所有者なので、パーミッション気にしないで良いのである。自分しか使わないし、システムにインストールするわけでもないのに管理者権限必要というのもアレだし、かといって毎回インストールパスを指定するのも面倒なのでw

あとは公式サイト等を見ながら、必要なライブラリをインストールしてく。
ちなみに、gemのバージョンは1.6.2がインストールされてた。好都合。

$ gem install rails -v=2.3.11
$ gem install rack -v=1.1.1
$ gem install rake -v=0.8.7
$ gem install sqlite3

最新のバージョンであるrails3系ではredmineが動かないのでライブラリのバージョンには十分注意する。install → 動作確認 → uninstall → install のループはメンドクサイ。
[参考]RedmineInstall - Redmine

database.ymlを作成する。付属のサンプルからsqlite3のところをコピペ。

development:
  adapter: sqlite3
  database: db/test.sqlite3
$ rake generate_session_store
$ rake db:create
$ rake db:migrate

rakeコマンドを実行するといくつか足りないライブラリあるよと言われるので、それもインストールしてく。

$ gem install i18n -v=0.4.2
$ gem install rubytree
$ gem install coderay

以上。

動かしてみる。

動作確認である。

$ cd /usr/local/redmine
$ ruby script/server start

thinをインストールしたのであれば、同じディレクトリでthin startすれば動く。僕はthin使うつもりしてる。http://0:3000/へアクセス。

こんな感じでオッケー。