RedmineをUbuntu 12.04 LTSにrvmを使ってインストールする
一応、redmineのインストールドキュメントは、英語なら、
Installing Redmine
Upgrading an existing installation
とかあるんだけど、ここで述べているのは、ほとんど、rvm 関連の四苦八苦です。
rvmをインストールするべ。
$ sudo apt-get install rvm-ruby
rvmを動かすためには何らかのrubyが必要らしいので、とりあえず、システムの奴をインストールしておく
$ sudo apt-get install ruby
初期状態だと、新しいrubyが出てこないことがあるので、先にデータベースを更新しておく。
$ sudo rvm get head $ sudo rvm reload
インストールできる候補のrubyを確認する
$ sudo rvm list known # MRI Rubies [ruby-]1.8.6[-p420] [ruby-]1.8.7[-p370] [ruby-]1.9.1[-p431] [ruby-]1.9.2-p180 [ruby-]1.9.2-p290 [ruby-]1.9.2-p318 [ruby-]1.9.2[-p320] [ruby-]1.9.2-head [ruby-]1.9.3-preview1 [ruby-]1.9.3-rc1 [ruby-]1.9.3-p0 [ruby-]1.9.3-p125 [ruby-]1.9.3[-p194] [ruby-]1.9.3-head ruby-head ...
最新っぽい1.9.3をインストールする
$ sudo rvm install 1.9.3
インストールされたrubyを確認する
$ sudo rvm list rvm rubies ruby-1.9.3 [ x86_64 ] ruby-1.9.3-p194 [ x86_64 ] # Default ruby not set. Try 'rvm alias create default <ruby>'. # => - current # =* - current && default # * - default
1.9.3-p194をデフォルトのrubyにする
$ sudo rvm 1.9.3-p194 --default
もう一度確認してみる(1.9.3-p194がデフォルトになっている)
$ sudo rvm list rvm rubies ruby-1.9.3 [ x86_64 ] =* ruby-1.9.3-p194 [ x86_64 ] # => - current # =* - current && default # * - default
直接rubyのバージョンを確認
$ ruby -v ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
何で良く分からないので、whichしてみると、
$ which ruby /usr/bin/ruby
どうやら、システムのrubyの方がパスが先みたいだ。面倒なので、要らないシステム側のrubyを消しておこう・・・。
$ sudo apt-get remove ruby
そして、
$ ruby -v ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
???
よくわからんので、一度、ログインし直してから、もう一度、やってみる。
$ ruby -v ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
うまくいってた。さて、redmineをインストールするには、bundlerが必要なので、gemでとりあえず、bundlerをインストール
$ sudo gem install bundler sudo: gem: command not found
なんでやねんなーーー!
$ which gem /usr/share/ruby-rvm/rubies/ruby-1.9.3-p194/bin/gem
パス通ってるのに、sudoだと行かない・・・???
で、いろいろと調べると、sudoは、セキュリティ強化のために、一部の環境変数と一部のパス以外はユーザーの環境を引き継がなくなってしまったんだそうな・・・。
で、sudoers (visudoで編集すべし)にsecure_pathっていうのがあって、そこにパスが通っているコマンドは実行できるけど、それ以外はダメっていうことになっている。ところが、rvmは、システム内でrubyのディレクトリを簡単に切り替えることが出来るのがメリットなので、ここにrvmでインストールされたコマンド群のパスを書くのは凄くダサイ。
secure_path=....:/usr/share/ruby-rvm/rubies/ruby-*/bin
なんてことはできない。じゃあどうすんだろう??ってなるんだけど、実はそのために、rvmsudoというコマンドが用意されていた。
・・・ということで、
$ rvmsudo gem install bundler ....
あとは、bundlerまかせ。redmineのアーカイブを展開したディレクトリ内で、bundlerを実行する。
$ rvmsudo bundle install --without development test
あとは煮るなり焼くなり・・・。