開発環境のバージョン管理
★ブログ移行のお知らせ
サイトを移行しました。以下をクリックください。
きよしの倶楽部 – 生活を潤わす情報を発信中。GTDを得意としてます。
ーーー
今までMACにおいて、rubyは基本的にOSが提供している1.8系を使っていてあまり不便はなかったけど、ここにきて1.9系が必要になってMBAの方はhomebrewに全てを切り替えて、最新版をインストールした。ちなみに現在は
XXXX-Mac-mini:~ XXXX$ ruby -v ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]
ってな感じです。
MBAの方で何も考えずhomebrew経由でrubyをインストールしたら、思いの外、2.0まで上がってしまって若干焦ったが、特に不便はないのでそのまま使っている状態。
一方でメイン機(MAC mini MT LION)はさすがにこれではまずいと思い、goole先生に相談。素敵な記事にヒットしましたので実行してみます。
rbenvで複数バージョンのRubyを管理するmac os lion - Hacking My Way 〜 itogのhack日記
もう完全に書かれているままをコピペ。途中、Xcodeのバージョンが古いといわれる例のwaring
Warning: Your Xcode (4.4.1) is outdated
Please install Xcode 4.6.1.
がでたので、アップデート。アップデートしたような気もするのですが、たくさん同じOS機器を使っているとこんな事もある。
XXX-Mac-mini:~ XXX$ brew install rbenv ==> Downloading https://github.com/sstephenson/rbenv/archive/v0.4.0.tar.gz ######################################################################## 100.0% ==> Caveats To use Homebrew's directories rather than ~/.rbenv add to your profile: export RBENV_ROOT=/usr/local/var/rbenv To enable shims and autocompletion add to your profile: if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi ==> Summary 🍺 /usr/local/Cellar/rbenv/0.4.0: 31 files, 152K, built in 3 seconds
てなこと。他のサイトにはif文は省略されているようだが、ここは素直にきちんと言われた通りを書いてみる事にする。
source ~/.bash_profile
で読ませてみても特にエラーなし。参照サイトではgccを入れ替えているようですが、エラーが出てから対応すりゃいいや、ってことで
XXXX-Mac-mini:~ XXXX$ rbenv install -l Available versions: 1.8.6-p383 1.8.6-p420 1.8.7-p249 1.8.7-p302 1.8.7-p334 1.8.7-p352 1.8.7-p357 1.8.7-p358 1.8.7-p370 1.8.7-p371 1.9.1-p378 1.9.2-p180 1.9.2-p290 1.9.2-p318 1.9.2-p320 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-p385 1.9.3-p392 1.9.3-preview1 1.9.3-rc1 2.0.0-dev 2.0.0-p0 2.0.0-preview1 2.0.0-preview2 2.0.0-rc1 2.0.0-rc2 2.1.0-dev jruby-1.5.6 jruby-1.6.3 jruby-1.6.4 jruby-1.6.5 jruby-1.6.5.1 jruby-1.6.6 jruby-1.6.7 jruby-1.6.7.2 jruby-1.6.8 jruby-1.7.0 jruby-1.7.0-preview1 jruby-1.7.0-preview2 jruby-1.7.0-rc1 jruby-1.7.0-rc2 jruby-1.7.1 jruby-1.7.2 jruby-1.7.3 jruby-1.7.4-dev maglev-1.0.0 maglev-1.1.0-dev mruby-dev rbx-1.2.4 rbx-2.0.0-dev rbx-2.0.0-rc1 ree-1.8.6-2009.06 ree-1.8.7-2009.09 ree-1.8.7-2009.10 ree-1.8.7-2010.01 ree-1.8.7-2010.02 ree-1.8.7-2011.03 ree-1.8.7-2011.12 ree-1.8.7-2012.01 ree-1.8.7-2012.02 topaz-dev
バージョン表示までは何とかなってるっぽいです。(もし'rbenv: no such command `install''がでるようでしたら"brew install ruby-build"を実行です。)
んじゃ、必要なバージョンをインストールしてみましょう。切り替えも試したいので、ここはとりあえず、1.9を突っ込んでみます。
XXXX-Mac-mini:~ XXXX$ rbenv install 1.9.3-p0 ERROR: This package must be compiled with GCC, but ruby-build couldn't find a suitable `gcc` executable on your system. Please install GCC and try again. DETAILS: Apple no longer includes the official GCC compiler with Xcode as of version 4.2. Instead, the `gcc` executable is a symlink to `llvm-gcc`, a modified version of GCC which outputs LLVM bytecode. For most programs the `llvm-gcc` compiler works fine. However, versions of Ruby older than 1.9.3-p125 are incompatible with `llvm-gcc`. To build older versions of Ruby you must have the official GCC compiler installed on your system. TO FIX THE PROBLEM: Install Homebrew's apple-gcc42 package with this command: brew tap homebrew/dupes ; brew install apple-gcc42 You will need to install the official GCC compiler to build older versions of Ruby even if you have installed Apple's Command Line Tools for Xcode package. The Command Line Tools for Xcode package only includes `llvm-gcc`. BUILD FAILED
うわ! やっぱ怒られた。なんか、めんどくせー事いってるな。1.9.3-p125より古いものも、場合によっては使うだろうからオフィシャルGCCコンパイラが必要みたい。TO FIX THE PROBLEMを一つずつトライ。
このコマンド結構時間がかかりました。
XXXX-Mac-mini:~ XXX$ brew tap homebrew/dupes ; brew install apple-gcc42 Cloning into '/usr/local/Library/Taps/homebrew-dupes'... remote: Counting objects: 874, done. remote: Compressing objects: 100% (474/474), done. remote: Total 874 (delta 487), reused 774 (delta 400) Receiving objects: 100% (874/874), 150.15 KiB | 90 KiB/s, done. Resolving deltas: 100% (487/487), done. Tapped 41 formula ==> Downloading http://r.research.att.com/tools/gcc-42-5666.3-darwin11.pkg ######################################################################## 100.0% ==> Caveats NOTE: This formula provides components that were removed from XCode in the 4.2 release. There is no reason to install this formula if you are using a version of XCode prior to 4.2. This formula contains compilers built from Apple's GCC sources, build 5666.3, available from: http://opensource.apple.com/tarballs/gcc All compilers have a `-4.2` suffix. A GFortran compiler is also included. ==> Summary 🍺 /usr/local/Cellar/apple-gcc42/4.2.1-5666.3: 104 files, 75M, built in 7.6 minutes
'There is no reason to install'とか、インストールする前に表示しないとアカン気がしますね。さ、後半のXcode comandline toolがどうのこうの、は一切無視してここでもう一度トライ! 結論からいうとうまくいきました。コンパイルするので結構な時間がかかりますけど。
XXXX-Mac-mini:~ XXXX$ rbenv install 1.9.3-p0 Downloading yaml-0.1.4.tar.gz... -> http://dqw8nmjcqpjn7.cloudfront.net/36c852831d02cf90508c29852361d01b Installing yaml-0.1.4... Installed yaml-0.1.4 to /Users/XXXX/.rbenv/versions/1.9.3-p0 Downloading ruby-1.9.3-p0.tar.gz... -> http://dqw8nmjcqpjn7.cloudfront.net/8e2fef56185cfbaf29d0c8329fc77c05 Installing ruby-1.9.3-p0... Installed ruby-1.9.3-p0 to /Users/XXXX/.rbenv/versions/1.9.3-p0 Downloading rubygems-1.8.23.tar.gz... -> http://dqw8nmjcqpjn7.cloudfront.net/178b0ebae78dbb46963c51ad29bb6bd9 Installing rubygems-1.8.23... Installed rubygems-1.8.23 to /Users/XXXX/.rbenv/versions/1.9.3-p0
"$ rbenv rehash"でshimsを更新してから、バージョンを確認。
XXXX-Mac-mini:~ XXXX$ rbenv versions * system (set by /Users/XXXX/.rbenv/version) 1.9.3-p0
いってそうです。globalコマンドでシステム全体のバージョンを切り替えてみましょう。
XXXX-Mac-mini:~ XXXX$ rbenv global 1.9.3-p0 XXXX-Mac-mini:~ XXXX$ ruby -v ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin12.3.0]
ちゃんといってます。では、本題の2.0をインストール。
XXXX-Mac-mini:~ XXXX$ ruby -v ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin12.3.0] XXXX-Mac-mini:~ XXXX$ rbenv install 2.0.0-p0 Downloading openssl-1.0.1e.tar.gz... -> https://www.openssl.org/source/openssl-1.0.1e.tar.gz Installing openssl-1.0.1e... Installed openssl-1.0.1e to /Users/XXXX/.rbenv/versions/2.0.0-p0 Downloading ruby-2.0.0-p0.tar.gz... -> http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.tar.gz Installing ruby-2.0.0-p0... Installed ruby-2.0.0-p0 to /Users/XXXX/.rbenv/versions/2.0.0-p0
バージョン確認&設定更新。
XXXX-Mac-mini:~ XXXX$ rbenv versions system * 1.9.3-p0 (set by /Users/XXXX/.rbenv/version) 2.0.0-p0 XXXX-Mac-mini:~ XXXX$ rbenv rehash
システム全体のバージョンを切り替え。
XXXX-Mac-mini:~ XXXX$ rbenv global 2.0.0-p0 XXXX-Mac-mini:~ XXXX$ ruby -v ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.3.0]
という結果でした。
なお、rbenvは特定フォルダのみでバージョンを有効にするlocalコマンドもあるようです。
$ rbenv local 1.8.7-p371
これは面白い仕様ですね。ただ、ミスを誘発しかねない気もしますけど。
しかし、結局環境設定にそれなりの時間がかかってしまう。なんかな〜。こういうの、今時っぽくないですね。