rbenvを全ユーザ用にインストールする
システムで利用するrubyのバージョン管理にaptやyumは使いたくないので、rbenvでやってしまいましょう。という話。
rbenv のインストール
インストール場所は /opt/ruby 以下。別に/usr/localでも問題ないけど、私の管理ポリシ的にそうしてる。
# mkdir -p /opt/ruby # cd /opt/ruby # git clone git://github.com/sstephenson/rbenv.git
/etc/profileに追記する、のは緊急時の影響が大きいので、rbenv環境変数系はまとめて1ファイルにしてユーザごとにsourceさせるように変更するとよい気がする。/etc/profile内でevalしたくはないよね。
# cat >> /etc/profile RBENV_ROOT=/opt/ruby/rbenv export RBENV_ROOT PATH=/opt/ruby/rbenv/bin:${PATH} eval "$(rbenv init -)" ^D
ここまでは、まあ、普通。
ruby-build のインストール
ruby-buildは便利なのだけど、rubyのバージョンごとに設定ファイルが作られていて、新しいバージョンのrubyを入れようと思ったらこのruby-buildごとインストールしなおさなくてはいけなくて、残念。
もういっそinstallなんてしないでも、git pull してくるだけで新バージョンの情報が手に入るようにしてみた。
# cd /opt/ruby # git clone git://github.com/sstephenson/ruby-build.git # find /opt/ruby/ruby-build/bin/* | xargs -I{} ln -s {} /opt/bin # cat >> /etc/profile PATH=${PATH}:/opt/bin ^D
インストール手順は以上で終わり。よくできているので、間違えなければやるべきことは少ない。
rubyをinstallする
うちの子の前準備。うちの子gcc入ってなかった。悲しかった。うちの子の名前何がいいですかね。いまのところ「はるだんじ」なんですけど。嘘ですけど。
# apt-get update; apt-get install -y build-essential automake autoconf cmake # source /etc/profile
rubyを入れる。インストール可能なバージョンを表示するためには rbenv install -l と、知らないうちにオプションが必要になってた。
# rbenv install -l ... # rbenv install 1.9.3-p327 # rbenv rehash # rbenv global 1.9.3-p327
アップデートしたいとき
新しいrubyのバージョンが出て、アップデートしたいと思ったとき、通常であれば
$ rbenv install -l ... <== …あれ?新しいrubyバージョンがない ... rbenvをアップデートしなきゃ! ... rbenvじゃなくてruby-buildの方…? $ cd /tmp $ git clone https://github.com/sstephenson/ruby-build.git <== このURLを知るためにググる $ cd ruby-build $ sudo ./install.sh <== 一瞬で終わって不安… $ rbenv install -l <== あ、出たでた。良かった…
という感じの行動をとるので非常にやる気を削がれる。しかもインストールできてもそれまで入れたgemが引き継がれてなくて二度ガッカリする。*1
今回の記事で作った環境であれば、
$ cd /opt/ruby/ruby-build $ sudo git pull $ rbenv install -l
で新しいrubyバージョンの定義ファイルが入るので、時間とやる気を節約できる。
*1:gem引継ぎがないことは利点にもなるので、この記事では対処してない