読者です 読者をやめる 読者になる 読者になる

WebEngine

web、プログラミング関係について書いていきます。あなたの優しい眼差しがブログの成長につながりますのでどうぞよろしく。

Vagrant + CentOS6.4 + rbenv でRuby環境構築

Linux Vagrant git Ruby

Step.0 前提条件


Step.1 VagrantCentOSを導入

ターミナルから作業ディレクトリに移動。なければmkdirでつくります。

Vagrantbox.esから 使えそうなCentOSを探しましょう。今回はこの

f:id:web-engine:20160626181426p:plain

を使用。Copyのボタンを押して、ターミナル(コマンドプロンプト)に戻ります。

vagrant box add centos-testhttps://github.com/2creatives/vagrant-centos/releases/download/v6.4.2/centos64-x86_64-20140116.box

と打ち込んで実行。Copyボタンを押しているならば、URL部分はコピーの方が早いです。
centos-testの部分はボックスの名前ですが、自分のわかるものであれば好きな名前で 構いません。2、3個であれば問題ないですが、多くなってくると混乱します。間違えて違うボックスを 消してしまったりしないようにしましょう。

ボックスが追加されているか確認するには

vagrant box list

と打ち込みます。centos-testと追加されていれば成功です。

続いて、作業用のディレクトリを作成し、その中に移動します。もちろん自分のつけたい名前でオーケイです。

mkdir centos-test
cd centos-test

そこまでできたら

vagrant init centos-test

と入力。centos-testの部分は自分のつけたディレクトリ名を打ち込ましょう。
ディレクトリ内にVagrantfileというファイルが作成されれば成功です。

次に、このVagrantfileを編集します。好みのエディタで開いて

config.vm.network "private_network", ip: "192.168.33.10"

という部分の#を外しましょう。
たいていは192.168.33.10だと思いますが、もし、ipの数字部分が違う人がいればメモするなり しておきましょう。

いよいよ仮想マシンを起動します。起動するには、Vagrantfileが存在するディレクトリ下で

vagrant up

と入力するだけです。起動したか確認するには

vagrant status

と打ち込みます。runningと表示されれば無事起動しています。

Macならばvagrant sshを使い、WindowsならばPuTTYかTeraTarmを 使って仮想マシンに接続します。このとき、ipの番号が書かれていたものと違っていた人は、書かれていた 番号を使って接続しましょう。

接続に成功するとユーザ名を聞かれます。ユーザ名はデフォルトでvagrantとなっています。 次にパスワードを聞かれますが、パスワードも同じくvagrantです。

無事入ることができたら少し休憩でもしましょう。
仮想マシンを切断するにはexit
仮想マシンを止めるにはvagrant suspendvagrant haltを使います。


Step.2 gitを導入

gitを使うので

git --version

でgitが入っているか確認します。入っていなかったら

sudo yum install -y git

でインストール。


BreakTime なぜrbenvを導入するか

rbenvとは、複数のバージョンのRubyを管理できるコマンド群です。今まで知らなかったのですが、アールビーエンヴとかアールベンヴって読むらしいですね。
して、なぜ普通にyum install rubyとしないかと言うと、2系のRubyが入らないからです。
このコマンドだと、1系のRubyが入ってしまいます。(2016年6月 現在)
もちろん、それでオーケイだという方は面倒な手順をふまずに、yumを使ってインストールしてもらっても 構いません。


Step.3 rbenvを導入

いちいちsudoを打つのが面倒なのでルートユーザになります。

su -

パスワードは初期設定でvagrantでした。

つづいて、/usr/local/src下に、rbenvのリポジトリをクローンします。

git clone git://github.com/sstephenson/rbenv.git /usr/local/src/rbenv

つづいて、パスを通します。
~/.bash_profileに書き込んでしまうと、実行ユーザしか読み込んでくれないので、/etc/profile.d/下 に、rbenv.shというファイルをつくって設定を書き込みます。

echo 'export RBENV_ROOT="/usr/local/src/rbenv"' >> /etc/profile.d/rbenv.sh
echo 'export PATH="${RBENV_ROOT}/bin:${PATH}"' >> /etc/profile.d/rbenv.sh
echo 'eval "$(rbenv init -)"' >> /etc/profile.d/rbenv.sh
source /etc/profile.d/rbenv.sh

ちゃんと書き込まれているかを、エディタで開くかcatコマンドで確認しましょう。
確認したら、exec $SHELL -lとコマンドを打ち、シェルを再起動します。(exitで一度出ても良い)

ルートユーザから一般ユーザに戻ってrbenv -vと打ち込んでバージョンが表示されればオーケイです。


Step.4 ruby-buildの導入

rbenvはRubyのバージョンを管理するためのコマンド群なので、これだけでインストールすると普通にyum install ruby とするのと変わりません。rbenvディレクトリ下にpluginsというディレクトリをつくり、その中にruby-buildのリポジトリをクローン します。

git clone git://github.com/sstephenson/ruby-build.git /usr/local/src/rbenv/plugins/ruby-build


Step.5 依存パッケージのインストール

rubyをインストールするにあたり必要なものをまとめてインストールしてしまいましょう。

sudo yum install -y gcc make openssl-devel readline-devel libffi-devel zlib-devel libcurl-devel

1個ずつgrep等を使ってすでに入っているか確かめて行っても良いですね。
っていうかこんなにインストールしなくていいような気がする・・・。


Step.6 エラーの解決

rbenv install --listでインストールできるRubyのバージョンが確認できます。
当然インストールするのは2系。ここでは2.2.2をインストールしてみます。
(ここで注意点があります。ルートユーザになりましょう。グループ作成をしておらず、グループがrootの ままになっているからです)

rbenv install 2.2.2

ここで「足りないものがあるよ」と怒られた場合には、それをインストールしましょう。ただ、僕の場合は 少し違いました。

mkdir: cannot create directory `/usr/local/src/rbenv/versions/2.2.2': 
Permission denied

Permission deniedだからRuby2.2.2のディレクトリを作成できない、と言われているようです。

ちょっと危険ですが

chmod -R 775 rbenv

chmod -R 775 versions

でアクセス権を変更しました。(どっちでやったか忘れた)2番目の7は、グループのアクセス権を表しており、それの読み、書き、実行のすべてができる ように許可したわけですね。ls -lで確認すればわかるようにroot rootとなっています。2番目のroot がグループを表しているわけです。こういうのは、あまり良くないですが、練習用の仮想環境下なので今回はこれで良しとします。

もう一度インストールを試みると今回は上手くいきました。念のため、本当に成功したか下記のコマンドで確認します。

rbenv versions

インストールはできましたが、まだ、Rubyは使えません。

rbenv global 2.2.2

とコマンドを打ち、「2.2.2のバージョンを使うよ」と宣言しましょう。ruby -vで確認して2.2.2のバージョンが表示されれば、 あとは自由にRubyを使うことができます。


step.7 バージョンの切り替え

せっかくなので、もう一つ違うバージョンをインストールしてみます。

rbenv install 2.3.0

もちろん違うバージョンをインストールしただけでは、前のバージョンのままです。

rbenv vesions

で確認すると、2.2.2のバージョンの前に * がついていると思います。現在使っているバージョンを表す記号です。
新しくインストールしたバージョンを使うことを下のコマンドで宣言します。

rbenv global 2.3.0

もう一度rbenv vesionsで確認すると、アスタリスクが新しいバージョンの方についていると思います。
これで新しく追加した方のRubyが使えるようになりました。
rbenv便利ですね!


参考