Macにrbenvでruby1.9.3を入れてみた。 [mac]
前回(Macで開発環境構築のための事前準備)に引き続きMacにRailsの開発環境を構築させるためのメモ。
今回はRubyを入れます。
ぶっちゃけMacには標準でRubyが入ってますが、そのバージョンは1.8.7と少し古い。
というか、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も実行します。
合わせて管理するRubyをインストールするためのツールであるruby-buildも入れます。
# 直接コンパイルするやり方もあるらしいが、この2つを組み合わせるのがよく利用されているらしいので。
インストールが終わったら環境変数にrbenvのパスを追加します。
■必要となるライブラリをインストール
Ruby管理ツールをインストール出来たので、お次はRubyを・・・と行きたいトコですがその前に必要となるライブラリをインストールします。
インストールするのは以下のライブラリになります。
●openssl => SSLなど暗号化にまつわるライブラリ。個人利用ではいらないっちゃあいらないが仕事で使うので。。。
●readline => 文字入力の編集や履歴などを扱うライブラリ。MacOSにはパチもんが入ってるらしい。Rubyでコレがないとirbで日本語が使えなかったりするので入れたほうがいいです。
●libyaml => YAMLファイルを扱うライブラリ。Ruby1.9.3系ではYAMLパーサーが変わったため必須となりました。
まずはopensslから。
補足ですが、brew linkにて"--force"オプションを付けずに実行した場合、自分の環境ではWarningが出ました。
その時は気にせず先に進んでしまったのですが、その場合Rubyインストール時にopensslが反映されず、結果的にRubyを再コンパイルするハメになりました。
会社で別の人が環境作った時はそんなの出なかったというので出ない人は出ないかもしれませんが、出てしまった人は"--force"オプションを付けるといいかもです。
一応その時のログも貼っておきます。
続いてreadline。
readlineでも"--force"オプションを付けなかった場合にopensslと同様のWarningが出ました。
いちおうこちらのログも。
最後にlibyamlを。
opensslやreadlineと違いlibyamlはlinkを貼らなくても大丈夫、というか既に貼られていた。
Rubyで必須なライブラリなのでその中でやったのかもしれない。
手順をまとめる中で実は何度かRubyを再インストールしているので。。。
どのみち必要なライブラリなので初めての人はlinkコマンドを叩いておいた方がいいかもしれない。
■Rubyのインストール
rbenvとライブラリのインストールが終われば準備完了となります。
いよいよRuby本体のインストールです。
まずはインストール可能なRubyのバージョンを確認します。
このブログを書いている時点でのRuby1.9.3の最新パッチバージョンはp392なのですが、ruby-build経由だとp374までしかありません。
調べたところhomebrew経由だとその辺りの反映が遅れるみたいです。常に最新版が欲しい時はgit-hub経由で入れた方がいいかもしれません。
# brew upgradeしても最新だと言われます。。。
今回は勉強も兼ねてるし、特に最新のパッチバージョンでなければならない理由もないのでp374を入れたいと思います。
Rubyのみのインストールであれば"rbenv install [rubyのバージョン]"で行けますが、先に入れたライブラリを利用するために"CONFIGURE_OPTS"にそのパスを設定します。
インストールしたRubyをrbenvに反映し、バージョンを確認します。
インストールされたバージョンを確認する。
readlineがちゃんと入っているかirbで確認します。
最後にRubyのバージョンを切り替えてみます。
Ruby2.0はまた別の機会に入れるとして、いったんここまでとします。
最後に参考にさせて頂いたサイトのURLを貼っておきます。
偉大なる先人様方に感謝。。。
★rbenvとRVMとの違い
★OSXでrbenvを使ってruby1.9.3の環境を作る
★rbenvコマンドメモ
今回は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コマンドメモ
コメント 0