Ruby
rbenv

rbenv で ruby の環境を整える

More than 1 year has passed since last update.


忙しい人のためのまとめ



  1. インストール

    Macは brew install rbenv ruby-build でインストール。

    Ubuntuは

    git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
    
    git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
    apt-get install -y autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev

    追記: 2016/09/29

    apt でインストールできるようになってました。当然ですが、git cloneでセットアップしたほうが、最新のものになります(Ref.)。

    apt install rbenv ruby-build
    



  2. .bash/zshrc ファイルに追加。

    [[ -d ~/.rbenv  ]] && \
    
    export PATH=${HOME}/.rbenv/bin:${PATH} && \
    eval "$(rbenv init -)"



  3. rubyのインストール

    rbenv install 2.2.2
    
    rbenv global 2.2.2
    ruby -v



rbenvのインストール

GitHub: sstephenson/rbenvに書いてある通りインストールする 。また、rubyをインストールするためのプラグインである、ruby-buildもインストールする。ruby-buildとrbenvの関係については「rbenv + ruby-build はどうやって動いているのか」を参照。

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

また、ruby-buildの``Suggested build environment''に必要な環境が記述されているので、各システムにあった方法を参照しインストールする。

今回はUbuntuなので下記のコマンドでインストールする。

apt-get install -y autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev

.bashrc.zshrcもしくは.zshenv等に下記を追加し、パスを通す。

[[ -d ~/.rbenv  ]] && \

export PATH=${HOME}/.rbenv/bin:${PATH} && \
eval "$(rbenv init -)"


rubyのインストール

rbenv install -l

でインストール可能なrubyのバージョンが一覧される。特定のバージョンをインストールするコマンドはつぎのようになる。

rbenv install 2.2.2

rubyのインストールが完了したら、利用するrubyのバージョンを指定する。

指定方法はrbenv localrbenv globalがあり、localは特定のワークスペース(ディレクトリ)でrubyのバージョンを使用する場合に指定する。これは、そのディレクトリにある.ruby-versionファイルを書き換えて管理している。一方、globalはシステム全体で使用するバージョンを指定するコマンドである。基本的に使いたいバージョンをglobalで指定し、プロジェクトによってバージョンを変更したい場合はlocalで指定するのがよい。

rbenv global 2.2.2

また、rbenvでrubyをインストールしたり、gemでパッケージをインストールした後はrbenv rehashを実行しなければならなかった。実行することによって、指定したバージョンのrubygemコマンドが.rbenv/shimsに配置される。現在はrbenv本体に取り込まれたため不要である(sstephenson/rbenv/pull/638)。

最後に、指定したバージョンのrubyにパスが通っているか確認しておこう。

$ ruby -v

ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
$ which ruby
~/.rbenv/shims/ruby
$ which gem
~/.rbenv/shims/gem


Errors


The Ruby openssl extension was not compiled. Missing the OpenSSL lib?

Downloading ruby-2.2.2.tar.gz...

-> http://dqw8nmjcqpjn7.cloudfront.net/5ffc0f317e429e6b29d4a98ac521c3ce65481bfd22a8cf845fa02a7b113d9b44
Installing ruby-2.2.2...

BUILD FAILED (Ubuntu 14.04 using ruby-build 20150519-3-ge932d47)

Inspect or clean up the working tree at /tmp/ruby-build.20150529121544.8737
Results logged to /tmp/ruby-build.20150529121544.8737.log

Last 10 log lines:
rake 10.4.2
rdoc 4.2.0
skip installing bundle gems because of lacking zlib
...
The Ruby openssl extension was not compiled. Missing the OpenSSL lib?

opensslのなにかが不足してるっぽいのでインストールする。

ruby-buildの``Suggested build environment''に必要な環境が記述されていた。

apt-get install -y autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev


References