Mac OS X でrubyのバージョン管理
rbenvを使います。
そのために、opensslとreadlineとlibyaml入れます。
# brew 入れてない場合入れて /usr/local に入ります
$ /usr/bin/ruby -e "$(/usr/bin/curl -fsSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)"
# 指定の場所 ~/brew 以下とかに入れたい場合
$ git clone https://github.com/mxcl/homebrew.git ~/brew
# OS X に標準添付されている opensslは、SEGV を引き起こす事があるため
$ brew install openssl
# OS X 標準添付の readlineは libedit なので
$ brew install readline
# 標準添付ライブラリの yaml パーサーの psych に必要
$ brew install libyaml
rbenvをgithub から インストールする
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ mkdir -p ~/.rbenv/plugins
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
~/.bashrc に以下の行を追加
$ vi ~/.bashrc
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
# 設定し終わったら
$ source .bashrc
インストールできるrubyのバージョンを確認する
$ rbenv install --list
ruby buildを使ってruby をインストールする
$ RUBY_CONFIGURE_OPTS="--enable-shared --with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl) --with-libyaml-dir=$(brew --prefix libyaml)" rbenv install 1.9.3-p429
$ RUBY_CONFIGURE_OPTS="--enable-shared --with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl)" rbenv install 2.0.0-p0
$ RUBY_CONFIGURE_OPTS="--enable-shared --with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl)" rbenv install 2.0.0-p195
インストールしたrubyを確認する
$ rbenv versions
バージョンを指定してrubyを有効にする
$ rbenv global 2.0.0-p0
pathを通るようにしておく
OS X なら /etc/paths に /Users/<ユーザ名>/.rbenv/shims を先頭に書いてあげて、pathが通るようにしておく
余談
というかメモ
# ちなみに、これを書いたときの brewのstableのrubyは 2.0.0-p0でした
$ brew info ruby
ruby: stable 2.0.0-p0, HEAD
# rbenv入れる前にインストールされてたrubyのバージョン
$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.4.0]
# gem list rubyのバージョンによってgem listは変わる
$ gem list
*** LOCAL GEMS ***
archive-tar-minitar (0.5.2)
bigdecimal (1.1.0)
chef (11.4.0)
childprocess (0.3.9)
diff-lcs (1.1.3)
erubis (2.7.0)
ffi (1.6.0)
highline (1.6.16)
i18n (0.6.4)
io-console (0.3)
ipaddress (0.8.0)
json (1.5.4)
log4r (1.1.10)
mime-types (1.21)
minitest (2.5.1)
mixlib-authentication (1.3.0)
mixlib-cli (1.3.0)
mixlib-config (1.1.2)
mixlib-log (1.4.1)
mixlib-shellout (1.1.0)
net-scp (1.0.4)
net-ssh (2.6.6, 2.2.2)
net-ssh-gateway (1.2.0)
net-ssh-multi (1.1)
ohai (6.16.0)
rake (0.9.2.2)
rdoc (3.9.4)
rest-client (1.6.7)
rspec (2.11.0)
rspec-core (2.11.1)
rspec-expectations (2.11.3)
rspec-mocks (2.11.3)
systemu (2.5.2)
vagrant (1.0.7)
yajl-ruby (1.1.0)
# そして
$ rbenv shell 1.9.3-p392
$ ruby -v
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin11.4.2]
$ gem list
*** LOCAL GEMS ***
bigdecimal (1.1.0)
io-console (0.3)
json (1.5.5)
minitest (2.5.1)
rake (0.9.2.2)
rdoc (3.9.5)
# vagrant(ベイグラント)を入れてみる
$ gem install vagrant
# えっw
$ vagrant
bash: vagrant: command not found
# gem install とか uninstall とかの度に必要になってくる
$ rbenv rehash
# 使えるようになる
$ vagrant
-v, --version Print the version and exit.
-h, --help Print this help.
Available subcommands:
box
destroy
gem
halt
init
package
provision
reload
resume
ssh
ssh-config
status
suspend
up
For help on any individual command run `vagrant COMMAND -h`
# めんどいので 下記を入れて 自動で rehashしてくれるようにする
$ gem install rbenv-rehash
# rehashされて、使えるようになってますね。
$ rails -v
Rails 3.2.13
おしまい
0 件のコメント:
コメントを投稿