【Ruby】HomebrewでrbenvをインストールしてRubyの最新版をインストール ついでにpyenvとplenvも入れる
こんばんは。
MacにはデフォルトでRubyが入っていますが、バージョンが古いです。
今回は、Rubyのバージョン管理ツールであるrbenvをHomebrewで入れ、rbenvからRubyの最新版を入れてバージョンを切り替えるようにします。
ついでに、同じようにPython、Perlのバージョン管理ツールであるpyenvとplenvも入れちゃいます。やり方はrbenvと一緒です。
ちなみにRubyには他にもrvmやgemがありますが、それとの違い(というか立ち位置?)はこちらのサイトが非常に参考になりますので、ご覧になってみてはどうでしょうか。
今回は手順を細かく示してくれているサイトがあったので、基本そちらのサイトの通りです。
私の記事では主に個人的なメモ用に書いていくので、やり方だけ知りたい方はこちらの記事にどうぞ。
なお、私の環境はOS X Mavericksとなっています。
また、事前にXcodeとHomebrewを入れといて下さい。色々ググるとXcode Command Line Tools(CLT)をインストールするみたいな記述がありますが、最近はHomebrew入れると一緒にインストールされるはずです。
opnesslとreadline のインストール
まずはこの2つを入れます。rbenv入れるためにないといけないようです。
ただ、両方ともデフォルトで入っているので問題ないっちゃないのですが、デフォルトのは古かったり色々おかしいらしいのでHomebrewでインストールします。
ちなみにopensslは証明書とか発行するやつで、readlineはターミナル上で行頭移動とかヒストリ機能とかできるようになるやつです。(たぶん)
$ brew install openssl $ brew install readline
これでインストールできますが、多分インストールしただけだとデフォルトのしか読み込まないので、brewで入れたものをシンボリックリンクさせます。
$ openssl version # バージョン確認 OpenSSL 0.9.8za 5 Jun 2014 $ which openssl #場所を確認 /usr/bin/openssl $ brew link openssl --force $ openssl version OpenSSL 1.0.1j 15 Oct 2014 $ which openssl /usr/local/bin/openssl
上記のようになればOKです。readlineもbrew link でやりましょう。 --force 付けないとWarning出てくるので注意です。
ここで一度ターミナルを再起動したほうが良いかもしれません。
ちなみに、自分の環境だとこの後に brew doctor やると、以下の様なWarningが出てきました。
これの消し方が分からないのですが、CLTとかXcodeアップデートしたら直ったりしないかな・・・(Yosemiteにしてないので)
一応消すだけなら unlink すれば消えるので、もしこれが消えなくて気になる人はlinkしないでデフォルトのままやったほうが良いかもです。
Warning: Some keg-only formula are linked into the Cellar. Linking a keg-only formula, such as gettext, into the cellar with `brew link <formula>` will cause other formulae to detect them during the `./configure` step. This may cause problems when compiling those other formulae. Binaries provided by keg-only formulae may override system binaries with other strange results. You may wish to `brew unlink` these brews: openssl readline
rbenvのインストールとPATHの追加
次にrbenvをHomebrewからインストールします。
$ brew install rbenv ruby-build
インストールしたら .bash_profile などに以下を追加します。
eval "$(rbenv init -)"
その後ターミナルをまた再起動し、 .rbenv にPATHが通っているか確認します。
$ echo $PATH /Users/****/.rbenv/shims
Rubyのインストール
いよいよRubyのインストールです。
まずはrbenvでインストール可能なバージョンを探し、それからインストールします。
自分の場合は2.1.5が最新版でしたのでそれをインストールします。
$ rbenv install -l $ RUBY_CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl)" rbenv install 2.1.5
インストールするときは、rbenv install より前のオプションを必ず付けて下さい。
これつけないと文字化けとか起きるらしいです。(参考:
rbenv 環境の Ruby の irb で日本語が文字化けするので直した | EasyRamble)
Rubyの切り替え
次にインストールしたRubyに切り替えます。
$ ruby -v ruby 2.0.0p247~ $ rbenv versions * system(set by /Users/***/.rbenv/version) 2.1.5 $ rbenv global 2.1.5 $ rbenv rehash $ ruby -v ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin13.0] $ rbenv versions system * 2.1.5(set by /Users/***/.rbenv/version)
rehashを忘れないで下さい。
これでRuby最新版のインストールは終了しました。
Bundlerのインストールとgemの自動インストール可
常に最新版を利用するgem(Bundlerなど)は、下記のコマンドでインストールしたほうが便利みたいです。
$ rbenv exec gem install bundler $ rbenv rehash
また、rbenv install する度に gem install し直さなければならないので、brewで rbenv-default-gems をインストールして自動化します。
$ brew install rbenv-default-gems
インストールしたら以下の設定ファイルを用意します。
~/.rbenv/default-gems
bundler rbenv-rehash pry haml sass compass
これでruby install した時に default-gems に書いたgemも自動でインストールしてくれるようになります。
reashも書いてるので、次回以降rehashもいらなくなります。
Python, Perlのインストール
ついでにPythonとPerlもインストールしちゃいます。
ただ、rbenvの時とまったく同じです。
brewでpyenv, plenv, perl-build をインストールし、.bash_profile に init を書き、それぞれのenvでバージョン確認してインストールしてrehashして終わりです。
$ brew install pyenv plenv perl-build
.bash_profile
eval "$(pyenv init -)" eval "$(plenv init -)"
ここでターミナルを再起してPATHを確認します。
次に本体のインストールです。
$ pyenv install -l $ pyenv install 3.4.2 $ pyenv global 3.4.2 $ pyenv rehash $ plenv install -l $ plenv install 5.21.6 $ plenv global 5.21.6 $ plenv rehash $ python --version Python 3.4.2 $ pyenv versions system * 3.4.2 (set by /Users/furudate/.pyenv/version) $ perl -v This is perl 5, version 21, subversion 6 (v5.21.6) built for darwin-2level $ plenv versions system * 5.21.6 (set by /Users/furudate/.plenv/version)
以上で両者のインストールは終わりです。簡単ですね。
Python関係のWarningの消し方
さて、ここまでやって brew doctor やると、Python関係のWarningが2つ出ます。
これを消しましょう。ただ、1個は消せないようです。
1つ目のWarning
Warning: python is symlinked to python3 This will confuse build scripts and in general lead to subtle breakage.
これはHomebrewではpythonコマンドがPython 2であるとされているために発生するWarningです。
これを回避するために、Python 2系の最新版をインストールして pythonコマンドが常に Python 2 を指すようにしておきます。
$ pyenv install 2.7.8 $ pyenv global 2.7.8 3.4.2 $ pyenv rehash $ pyenv versions system * 2.7.8 (set by /Users/furudate/.pyenv/version) * 3.4.2 (set by /Users/furudate/.pyenv/version)
以上のことをやると、Warningが消えるはずです。
2つ目のWarning
Warning: "config" scripts exist outside your system or Homebrew directories. `./configure` scripts often look for *-config scripts to determine if software packages are installed, and what additional flags to use when compiling and linking. Having additional scripts in your path can confuse software installed via Homebrew if the config script overrides a system or Homebrew provided script of the same name. We found the following "config" scripts:
これは結論から言えば消せないようです。
configファイルがいっぱい見つかったけど大丈夫?みたいなことを聞いているようですが、pyenvで管理できるので問題ないようです。
Warningが表示されるのは諦めるしかないようです。残念。
さて、これでRubyとPython、Perlの最新版を入れることが出来ました。
それでは。
参考にさせていただいたサイト
OS X Mavericks (10.9) に Homebrew + rbenv で Ruby をインストールする | deadwood
Rubyのrvmやgemってなんだ?て調べたらrbenvが出てきたの巻 - むかぁ~ どっと こむ
rbenv 環境の Ruby の irb で日本語が文字化けするので直した | EasyRamble
MacOSX - Mac OSX で開発環境を構築するための環境構築 (Homebrew, Git, SVN, Ruby, Perl, Python) - Qiita