2013年4月10日水曜日

RVMからrbenvにMac・Ubuntu・Windowsを移行した

MacもLinuxもRubyの環境はRVMからインストールしていて、WindowsはRubyInstallerを使ってた。

この間、Ubuntuをセットアップした時に.zshrcを共通化したこともあって、Ruby環境も共通化したいなと思い、どうせならということでrbenvに乗り換えてみた。

Ubuntu 12.10

RVMアンインストール

% rvm seppuku
  → これでrvm自体とRubyとGemが全部消える
% vi .zshrc
  → RVM向けの設定を削除

rbenvインストール

% git clone https://github.com/sstephenson/rbenv ~/.rbenv
% vi .zshrc
  export PATH=$HOME/.rbenv/bin:$PATH
  eval "$(rbenv init - zsh)"
% mkdir ~/.rbenv/plugins
% cd ~/.rbenv/plugins
% git clone https://github.com/sstephenson/ruby-build
% exit

Rubyインストール

% rbenv install -l  # インストール可能なRubyが出る
% rbenv install 2.0.0-p0 --verbose
% rbenv global 2.0.0-p0
% exit

% gem install rbenv-rehash
% gem install bundle
参考
今更だけどrvmからrbenvに乗り換えるときの個人用メモ - === SANDmark 19106 === beginning stress test

Mac

準備

Homebrewで以下をインストール。

  • libyaml
  • openssl
  • autoconf, readlineはインストール済みだった

インストール

RVMのアンインストールからrbenv、RubyのインストールはUbuntuと一緒。 Macには、Ruby 1.9.3-p392と2.0.0-p0とJRuby 1.7.3をインストール。 デフォルトは、2.0.0-p0にしておいた。

Windows

Windowsは、Cygwinで使えることが前提。ただし、結果から言うとrbenv installは失敗した。 Windows + Cygwin + 認証Proxyの組み合わせは、開発環境が非常に作りにくいと改めて実感。 そういえば、RVMもRuby 1.9.3がrvm installできなくてRubyInstaller使うようになったんだった…。

  • rbenvのインストールまではUbuntuと一緒
  • rbenvをインストールしてシェルを起動した時に、"\r"関係のエラーが出る場合は、 Windowsの環境変数 "SHELLOPTS" に "igncr" を追加すると良い
\rを無視するための参考
Cygwin 上の bash で,CR を無視する方法 - Lokiへの日々

Rubyインストール

  • RubyInstallerでインストールしたRubyはアンインストール
  • rbenv install 1.9.3-p392にしても、yamlのconfigureでエラーになる
    →単体でyamlをwgetしてconfigureしてもエラーにならない
  • 諦めて、ソースからコンパイルしてrbenv管理下に置くことに
  • Cygwinのsetup.exeでlibyaml-devel, readline, zlib, zlib-devel, openssl, openssl-develを追加インストール
% wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.tar.gz
% tar xvf ruby-1.9.3-p392.tar.gz
% cd ruby-1.9.3-p392
% ./configure --prefix=~/.rbenv/versions/1.9.3-p392
% make
% make install
% rbenv rehash
% rbenv versions
  → 1.9.3-p392が出てくるはず
% rbenv global 1.9.3-p392
参考
自分でコンパイルしたRubyをrbenvで管理する(Mac OS X) #Ruby #Mac #rbenv - Qiita

0 コメント:

コメントを投稿