SSブログ

Macにrbenvでruby1.9.3を入れてみた。 [mac]

前回(Macで開発環境構築のための事前準備)に引き続きMacにRailsの開発環境を構築させるためのメモ。

今回はRubyを入れます。

ぶっちゃけMacには標準でRubyが入ってますが、そのバージョンは1.8.7と少し古い。

% ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]


というか、Ruby2.0も出たのでもうすぐサポート(たしか今年の7月?)が切れます。
#追記(2013.03.24): 2013年6月まででした。1.8.7の今後につきまして

本来なら最新となるRuby2.0を入れたいところなのですが、仕事では1.9系がメインなので、そういった大人の事情を考慮してRuby1.9.3を入れます。
ただし、今後Ruby2.0も入れられるようRubyのバージョン管理ツールを利用して構築します。

ちなみにRubyのバージョン管理ツールとしてはRVMが有名で、自分も仕事ではRVMを利用しています。
ただし、最近ではbundlerとの相性などもありrbenvと呼ばれるツールが人気を博しています。

なので勉強も兼ねてrbenvを使ってRubyをインストールしたいと思います。

github:rbenv


■rbenv(+ruby-build)のインストール
Rubyをインストールする前にまずはrbenvをインストールします。

rbenvのインストールはいくつか方法があるのですが、せっかくhomebrewをインストールしたので今回はそれを使ってインストールします。
# インストール前に念の為にhomebrewのupdateも実行します。
% brew update
Already up-to-date.

% brew install rbenv
==> Downloading https://github.com/sstephenson/rbenv/tarball/v0.4.0
######################################################################## 100.0%
Warning: The cleaning step did not complete successfully
Still, the installation was successful, so we will link it into your prefix
==> Caveats
To enable shims and autocompletion add to your profile:
  if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

To use Homebrew's directories rather than ~/.rbenv add to your profile:
  export RBENV_ROOT=/usr/local/opt/rbenv
==> Summary - rbenv
  /usr/local/Cellar/rbenv/0.4.0: 31 files, 160K, built in 4 seconds


合わせて管理するRubyをインストールするためのツールであるruby-buildも入れます。
# 直接コンパイルするやり方もあるらしいが、この2つを組み合わせるのがよく利用されているらしいので。
% brew install ruby-build
==> Downloading https://github.com/sstephenson/ruby-build/tarball/v20130104
######################################################################## 100.0%
==> ./install.sh
 /usr/local/Cellar/ruby-build/20130104: 64 files, 280K, built in 4 seconds


インストールが終わったら環境変数にrbenvのパスを追加します。

% vim ~/.zshrc
====================================================
# 以下を追加
export PATH="$HOME/.rbenv/bin:$PATH"↓
eval "$(rbenv init -)"↓ 
====================================================

% source ~/.zshrc 
% echo $PATH
/Users/*******/.rbenv/shims:/Users/*******/.rbenv/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin



■必要となるライブラリをインストール
Ruby管理ツールをインストール出来たので、お次はRubyを・・・と行きたいトコですがその前に必要となるライブラリをインストールします。

インストールするのは以下のライブラリになります。
●openssl => SSLなど暗号化にまつわるライブラリ。個人利用ではいらないっちゃあいらないが仕事で使うので。。。
●readline => 文字入力の編集や履歴などを扱うライブラリ。MacOSにはパチもんが入ってるらしい。Rubyでコレがないとirbで日本語が使えなかったりするので入れたほうがいいです。
●libyaml => YAMLファイルを扱うライブラリ。Ruby1.9.3系ではYAMLパーサーが変わったため必須となりました。


まずはopensslから。
% brew install openssl
==> Downloading http://openssl.org/source/openssl-1.0.1c.tar.gz
######################################################################## 100.0%
==> perl ./Configure --prefix=/usr/local/Cellar/openssl/1.0.1c --openssldir=/usr/local/etc/openssl zlib-dynamic shared darw
==> make
==> make test
==> make install MANDIR=/usr/local/Cellar/openssl/1.0.1c/share/man MANSUFFIX=ssl
 /usr/local/Cellar/openssl/1.0.1c: 429 files, 15M, built in 2.7 minutes

% brew link openssl --force
Linking /usr/local/Cellar/openssl/1.0.1c... 1139 symlinks created


補足ですが、brew linkにて"--force"オプションを付けずに実行した場合、自分の環境ではWarningが出ました。
その時は気にせず先に進んでしまったのですが、その場合Rubyインストール時にopensslが反映されず、結果的にRubyを再コンパイルするハメになりました。

会社で別の人が環境作った時はそんなの出なかったというので出ない人は出ないかもしれませんが、出てしまった人は"--force"オプションを付けるといいかもです。

一応その時のログも貼っておきます。
% brew link openssl         
Warning: openssl is keg-only and must be linked with --force
Note that doing so can interfere with building software.


続いてreadline。
% brew install readline
==> Downloading http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz
######################################################################## 100.0%
==> Patching
patching file callback.c
patching file input.c
patching file patchlevel
patching file support/shobj-conf
patching file vi_mode.c
==> ./configure --prefix=/usr/local/Cellar/readline/6.2.4 --mandir=/usr/local/Cellar/readline/6.2.4/share/man --infodir=/us
==> make install
 /usr/local/Cellar/readline/6.2.4: 31 files, 1.6M, built in 20 seconds

% brew link readline --force
Linking /usr/local/Cellar/readline/6.2.4... 12 symlinks created


readlineでも"--force"オプションを付けなかった場合にopensslと同様のWarningが出ました。
いちおうこちらのログも。
% brew link readline 
Warning: readline is keg-only and must be linked with --force
Note that doing so can interfere with building software.


最後にlibyamlを。

% brew install libyaml
==> Downloading http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/libyaml/0.1.4
==> make install
 /usr/local/Cellar/libyaml/0.1.4: 7 files, 336K, built in 11 seconds

% brew link libyaml --force
Warning: Already linked: /usr/local/Cellar/libyaml/0.1.4
To relink: brew unlink libyaml && brew link libyaml


opensslやreadlineと違いlibyamlはlinkを貼らなくても大丈夫、というか既に貼られていた。

Rubyで必須なライブラリなのでその中でやったのかもしれない。
手順をまとめる中で実は何度かRubyを再インストールしているので。。。
どのみち必要なライブラリなので初めての人はlinkコマンドを叩いておいた方がいいかもしれない。


■Rubyのインストール
rbenvとライブラリのインストールが終われば準備完了となります。
いよいよRuby本体のインストールです。

まずはインストール可能なRubyのバージョンを確認します。
% ruby-build --definitions
1.8.6-p383
(中略)
1.9.3-dev
1.9.3-p0
1.9.3-p125
1.9.3-p194
1.9.3-p286
1.9.3-p327
1.9.3-p362
1.9.3-p374
1.9.3-preview1
1.9.3-rc1
2.0.0-dev
2.0.0-preview1
2.0.0-preview2
2.0.0-rc1
jruby-1.5.6
(中略)
ree-1.8.7-2012.02

% brew upgrade ruby-build
Error: ruby-build-HEAD already installed


このブログを書いている時点でのRuby1.9.3の最新パッチバージョンはp392なのですが、ruby-build経由だとp374までしかありません。
調べたところhomebrew経由だとその辺りの反映が遅れるみたいです。常に最新版が欲しい時はgit-hub経由で入れた方がいいかもしれません。
# brew upgradeしても最新だと言われます。。。

今回は勉強も兼ねてるし、特に最新のパッチバージョンでなければならない理由もないのでp374を入れたいと思います。

Rubyのみのインストールであれば"rbenv install [rubyのバージョン]"で行けますが、先に入れたライブラリを利用するために"CONFIGURE_OPTS"にそのパスを設定します。
% CONFIGURE_OPTS="--with-opt-dir=/usr/local/" rbenv install 1.9.3-p374
Downloading yaml-0.1.4.tar.gz…
-> http://dqw8nmjcqpjn7.cloudfront.net/36c852831d02cf90508c29852361d01b
Installing yaml-0.1.4…
Installed yaml-0.1.4 to /Users/******/.rbenv/versions/1.9.3-p374

Downloading ruby-1.9.3-p374.tar.gz…
-> http://dqw8nmjcqpjn7.cloudfront.net/90b6c327abcdf30a954c2d6ae44da2a9
Installing ruby-1.9.3-p374…
Installed ruby-1.9.3-p374 to /Users/******/.rbenv/versions/1.9.3-p374


インストールしたRubyをrbenvに反映し、バージョンを確認します。
% rbenv rehash
% rbenv versions
  system
* 1.9.3-p374 (set by /Users/*****/.rbenv/version)
% ruby -v
ruby 1.9.3p374 (2013-01-15 revision 38858) [x86_64-darwin12.2.1]


インストールされたバージョンを確認する。

readlineがちゃんと入っているかirbで確認します。
% irb
irb(main):001:0> name="ほげ"
=> "ほげ"
irb(main):002:0> 


最後にRubyのバージョンを切り替えてみます。
% rbenv global system
% ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]
%
% rbenv global 1.9.3-p374
% ruby -v
ruby 1.9.3p374 (2013-01-15 revision 38858) [x86_64-darwin12.2.1]


Ruby2.0はまた別の機会に入れるとして、いったんここまでとします。


最後に参考にさせて頂いたサイトのURLを貼っておきます。
偉大なる先人様方に感謝。。。

rbenvとRVMとの違い
OSXでrbenvを使ってruby1.9.3の環境を作る
rbenvコマンドメモ
タグ:MAC rbenv Ruby
nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 1

コメント 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。