rbenv + ruby-buildでrubyをインストールする
yum installで入るrubyが1.8だったので、rbenvのプラグインであるruby-build経由で最新のruby(2016/5/29現時点の安定版v2.3.1)をインストールする。
この記事に書いてあることはすべて公式ドキュメントから辿れる内容なので、公式ドキュメントを見よう。
Rubyのインストール
rbenvをインストールする
github.com 書いてある通り、clone→make→パス追加→initするだけ。
ruby-buildをインストールする
github.com
rbenvのプラグインとして動作させる場合は、.rbenv/plugins
の中にcloneするだけ。簡単。
rubyをインストールする
これで準備完了したので、rubyをインストールする。 インストールできるrubyの一覧を表示。
$ rbenv install --list
普通のruby(CRuby)の他に、jrubyとかmrubyとかrbxとかいろんなruby実装が出てくる。 rbxってのはrubyによるruby実装らしい(Rubinius)。pypyみたいな。
普通のrubyがやりたいので、一覧からバージョン表記のみのものを指定してインストールする。 今回は一番新しい2.3.1を入れる。
$ rbenv install 2.3.1
エラー出た。
Downloading ruby-2.3.1.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.bz2 Installing ruby-2.3.1... BUILD FAILED (CentOS release 6.7 (Final) using ruby-build 20160426-33-g3304f96) Inspect or clean up the working tree at /tmp/ruby-build.20160529232814.3766 Results logged to /tmp/ruby-build.20160529232814.3766.log Last 10 log lines: installing rdoc: /home/{USER}/.rbenv/versions/2.3.1/share/ri/2.3.0/system installing capi-docs: /home/{USER}/.rbenv/versions/2.3.1/share/doc/ruby The Ruby readline extension was not compiled. ERROR: Ruby install aborted due to missing extensions Try running `yum install -y readline-devel` to fetch missing dependencies. Configure options used: --prefix=/home/{USER}/.rbenv/versions/2.3.1 LDFLAGS=-L/home/{USER}/.rbenv/versions/2.3.1/lib CPPFLAGS=-I/home/{USER}/.rbenv/versions/2.3.1/include
言われるがままreadline-develをインストールする。
$ sudo yum install readline-devel
再度rubyインストール。
$ rbenv install 2.3.1 Downloading ruby-2.3.1.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.bz2 Installing ruby-2.3.1... Installed ruby-2.3.1 to /home/{USER}/.rbenv/versions/2.3.1
Installed!
rbenv versions
コマンドで、インストール済みのrubyバージョンが見られる。
rbenv global 2.3.1
でglobalのバージョンが設定できるし、rbenv local 2.3.1
な感じでディレクトリごとのバージョンも設定できる。
rubyとかirbのパスはどこに通せば良いのだろうか。
~/.rbenv/versions/2.3.1/bin/
に直接通すものなのかな?globalのバージョンが自動で割り当てられるようにしたいんだけども…
2016/5/30追記
~/.rbenv/shimsの中が現在のバージョンに切り替わっている(?)ぽいのでここをパスに追加すれば良さそう。
2016/8/8追記
rbenv init
でshimsとautocompletionが有効になるので、.bash_profile或いは.bashrcにeval "$(rbenv init -)"
を加える必要があった。