個人的なメモです。
まだ全然まとまってないのですぐ変わる。
THE changelog
- [心境の変化 @ 2013-05-06] やっぱrbenvのインストール先は
/usr/local
じゃなくて/opt
にするわ - [追記 @ 2013-05-06] Prereqぱっけーじについて
第1章 どうしようもない恋の唄
rbenv
rbenv(ルベンヴ?)の話に入る前に、とりあえずうちの冷蔵庫の話からさせてもらうと、ハムがいっぱい余ってたんですね。で、卵のハム閉じというexperimental料理を作ってみたのだが、なかなか美味しい。
それを口いっぱいに入れながら空を見上げて、rbenvはどのように設定するのが良いだろうかと色々試した結果、こんな感じがいいんじゃないかと思うに至ったわけです。
- rbenvはsystem wideにインストゥットゥルーする
- rbenvは
/opt
につくる - rbenvグループに所属する無邪気なユーザーだけがrbenvを利用できる
- rbenvのプラグインは使わない
今まではさ、/etc/profile.d/
にrbenv環境変数を設定するスクリプトを置いて全ユーザーに有効にしてたけどさ、そうさ、いちいちroot権限で操作することで考えなくちゃいけないことが結構それなりにあれなので、厄介なので、そうなので、結局はユーザー個別で設定するので十分だったと考えるように少しずつそうなってきたのです。
どーせWebアプリ動かすときは、アプリごとに、ユーザー作るしね。
rbenvグループを作るのだ
rbenvを使いたい強欲野郎(ユーザー)のために、文字通りrbenvという名をもったグループをつくろうと思う。
世間ではstaffグループを利用する例が多いですが、グループの用途はなるべく特化させたい、なぜならどう設定したか忘れるからね!あとで必ず忘れるから!
その点、rbenvグルーポという名前のグルーペであれば、一目見ただけで、いくらカニなみの記憶力しかない僕でもきっとすぐに「あッ、これはもしやrbenv用に作ったグループなのではないかしら」と気づくことができるのではないかと、俺の第6感がぴぴーと伝えてきたのです。
$ sudo groupadd rbenv
ユーザーのrbenvグループへの追加
上記しました通り、rbenvを使うユーザーはrbenvグループに参加していることが肝要なわけです。
もしあなたがあなたの分身たるユーザーをrbenvに参加させていない場合、rbenvを使えないのはもはや自明の理と言えるでしょう。
それでは追加しましょう。
$ sudo gpasswd -a あなたのユーザー名 rbenv
Adding user あなたのユーザー名 to group rbenv
ちゃんと追加されたかな?
$ grep rbenv /etc/group
rbenv:x:1002:あなたのユーザー名
されてる!!!たいへんだ!!!
グループにユーザーを追加したら、落ち着いて、ここで一度シェルにログインしなおしておきましょう。
exitしてまたやってきてもいいし、su
するのももよいですね。
$ su - あなたのユーザー名
rbenvのインストーリング
ここからの作業には、どうやらgitというものがいるらしい。
$ sudo apt-get install git
さて、rbenvのインストール先はどこがよいのだろうか。
人気の/usr/local
だろうか/var
だろうか、はたまた/tmp
にいれて刹那のキラメキに酔いしれるべきだろうか。
そして結局は/opt
にすることにした。
だって/opt
を全然つかってなくて、もったいなかったから。
そんな単純な理由で僕は。
$ cd /opt
$ sudo git clone git://github.com/sstephenson/rbenv.git rbenv
謎のコマンドを実行してrbenvディレクトリにrbenvグループ権限をつけておく。
$ sudo chgrp -R rbenv rbenv
$ sudo chmod -R g+rwxXs rbenv
ruby-buildプラグインをインストール
Rubyをビルドするためのruby-buildプラグインをインストールします。
プラグインは使わない、とか言ってた気がしますが、うそでした。
大人はうそをついているのです。しかも、間違いも犯すのです。
$ mkdir /opt/rbenv/plugins
$ cd /opt/rbenv/plugins
$ git clone git://github.com/sstephenson/ruby-build.git
謎のコマンドを実行してruby-buildディレクトリにrbenvグループ権限をつけておく。
$ chgrp -R rbenv ruby-build
$ chmod -R g+rwxs ruby-build
環境変数の設定
rbenvを使うには、環境変数を設定しなくていけません。
そうしないとrbenvでインストールしたRubyやコマンドたち、かけがえのないそういったものたちへのパスが通らなかったり、とても困ったことが起きるのです。
どうも、少しずつ私のテンションが下がってきたように感じます。
~/.bash_profile
に以下を追記してくださいね。もし良かったらで構いませんので。
export RBENV_ROOT=/opt/rbenv
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"
追記していただけたでしょうか。
大変お手数おかけしまして、申し訳ございません。
追記していただけましたら、大変恐縮なのですが、更にもう一点、以下を実行していただけますでしょうか。
これで環境変数が読み込まれますので・・・
あっ、無理にとは言いません。どうかご容赦ください。
$ source ~/.bash_profile
※rbenvのREADMEによるとUbuntuの場合には
.bashrc
に書くようにとあるが、それはUbuntu Desktopのターミナルアプリケーションでは.bashrc
が読み込まれないため。したがってUbuntu Serverの場合には.bash_profile
でよい。
と思う。。。
Rubyのインストール
お疲れ様でした!
rbenvがインストールできて、使用の準備ができました!
あとはRubyをインストールするだけです!
さようなら!
こんにちは!
ではRubyをインストールしましょう!
Q&Aコーナー
Q: 先生!Rubyって何ですか?
A: よく知りませんが、ゼルダの伝説でそういうものを見た気がします!
Rubyのビルドに必要なパッケージのインストルル
RubyのビルドにはCコンパイラ?とかなんか追加で必要なパッケージがあるのでインストールしてくださいね!
嫌な人はしなくてもいいですが、それだと一生新しいRubyのインストールはできませんからね!
$ sudo apt-get install git build-essential libssl-dev
インストール可能なバージョンの確認
$ rbenv install --list
Available versions:
1.8.6-p383
1.8.6-p420
1.8.7-p249
1.8.7-p302
1.8.7-p334
〜超略〜
ree-1.8.7-2010.02
ree-1.8.7-2011.03
ree-1.8.7-2011.12
ree-1.8.7-2012.01
ree-1.8.7-2012.02
topaz-dev
いっぱいでましたね!いっぱいありすぎて嫌になってきますね!
せっかくだから俺はこのreeってやつを選ぶぜ!やっぱりやめたぜ!
BLING BLINGな2.1.1
せっかくだから俺は一番新しいやつを選ぶぜ!
BLING BLINGなピカピカの最新版!
俺らのブランニューキャデラック!
2.1.1 だぜ!
$ rbenv install 2.1.1
rehash
みんな聞いてくれ。
部屋のにおいが気になる時はリセッシュをするよな?
俺はファブリーズ派だというやつもいるかもしれないけどな!
ま、それと同じで、新しいバージョンのRubyのインストール、もしくは実行コマンドを提供するgemのインストールなんかをした後には、黙ってrehashする必要があるってことさ。
$ rbenv rehash
global
最新のRubyをインストールしただけで満足かい?
俺は満足さ。
でもそれだけじゃget no satisfactionなkidsにはこれをあげよう。
この謎のコマンドを親の仇とばかりに実行してくれるか。
デフォルトに使用するRubyが入れたての2.1.1になるはずさ。
$ rbenv global 2.1.1
$ ruby -v
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux]