rbenv で ruby の環境を整える

  • 180
    いいね
  • 1
    コメント

忙しい人のためのまとめ

  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