Mac OS X 開発環境構築手順:Groovyインストール(※導入バージョン切替方法含む)

Groovyの導入自体はhomebrew使えば一発ですし以前もエントリとして書いたのですが、一点対応させたい部分があるので(※Groovyに限った事では無いですが)改めてエントリとして書きだしてみました。

一点対応させたいところというのは『環境のバージョンを切り替えたい』というもの。


Groovyは現状最新は2.0.x系なのですが、ものによっては1.8.x系じゃないと動かないとか云々…という話もちょろっと聞いたりするので、時と場合に応じてささっと切り替えられると嬉しいな、何か良い方法無いもんじゃろうか…と考えていたところ、iRoF(TwitterID:@irof)さんから以下のようなアドバイスが!いろふさん、ありがとうございました!

いろふさんのエントリはこちら。

さらにエントリ中『ごにょごにょする』の部分について解説されているエントリはこちら。

コマンド数回で切り替えられるというのは何ともありがたいところですね〜。早速試してみましょう。

環境としてはMac OS X(Lion)で試しました。homebrewが使えることを前提としてますので、以下エントリを参考にして環境を整えてください。

また、バージョン切り替えの際にはGitが必要になります。上記作業の後にインストールしといてください。


まずは普通にインストール。『brew install groovy』一発で完了です。

$ brew install groovy
Warning: Experimental support for using the "Command Line Tools" without Xcode.
Some formulae need Xcode to be installed (for the Frameworks not in the CLT.)
==> Downloading http://dist.groovy.codehaus.org/distributions/groovy-binary-2.0.1.zip
######################################################################## 100.0%
==> Caveats
You should set the environment variable GROOVY_HOME to
  /usr/local/Cellar/groovy/2.0.1/libexec
==> Summary
/usr/local/Cellar/groovy/2.0.1: 59 files, 25M, built in 61 seconds
$ 

導入後のバージョンを確認。現時点での最新は2.0.1となっているようです。

$ groovy --version
Groovy Version: 2.0.1 JVM: 1.7.0_05 Vendor: Oracle Corporation OS: Mac OS X
$ 

brew info』というコマンドでも内容を確認してみましょう。

$ brew info groovy
groovy: stable 2.0.1
http://groovy.codehaus.org/
/usr/local/Cellar/groovy/2.0.1 (59 files, 25M) *
https://github.com/mxcl/homebrew/commits/master/Library/Formula/groovy.rb

==> Caveats
You should set the environment variable GROOVY_HOME to
  /usr/local/Cellar/groovy/2.0.1/libexec
$ 


さて、ここからが本題。brewでは、『brew versions』というコマンドで利用可能なバージョンの管理を行なっており、ここに記載されている情報を利用する事によって導入環境のバージョン切り替えを容易に行える仕組みが提供されています。

まずは場所移動。

$ cd /usr/local/

そして『brew versions』で利用可能なバージョンの一覧を確認してみます。

$ brew versions groovy
2.0.1    git checkout affc4c8 Library/Formula/groovy.rb
2.0.0    git checkout 278a37d Library/Formula/groovy.rb
1.8.6    git checkout b688a91 Library/Formula/groovy.rb
1.8.5    git checkout d90e061 Library/Formula/groovy.rb
1.8.4    git checkout b9c0c5d Library/Formula/groovy.rb
1.8.3    git checkout 998c8b4 Library/Formula/groovy.rb
1.8.2    git checkout dad52b5 Library/Formula/groovy.rb
1.8.1    git checkout 57286a1 Library/Formula/groovy.rb
1.8.0    git checkout e6f4d4a Library/Formula/groovy.rb
1.7.10   git checkout db01f6c Library/Formula/groovy.rb
1.7.8    git checkout 0476235 Library/Formula/groovy.rb
1.7.7    git checkout 2e8b386 Library/Formula/groovy.rb
1.7.6    git checkout b43149a Library/Formula/groovy.rb
1.7.5    git checkout b56ff28 Library/Formula/groovy.rb
1.7.4    git checkout cbb36af Library/Formula/groovy.rb
1.7.3    git checkout 6c5485b Library/Formula/groovy.rb
1.7.2    git checkout a9a3469 Library/Formula/groovy.rb
1.7.1    git checkout 0d0d7cd Library/Formula/groovy.rb
1.7.0    git checkout 8e9c287 Library/Formula/groovy.rb
1.6.5    git checkout e835f10 Library/Formula/groovy.rb
$

ここで『1.x系最新のバージョンである1.8.6に切り替えたい』としましょう。記載されている『git checkout ...』の文章をそのままコピペし、実行。

git checkout b688a91 Library/Formula/groovy.rb

brew upgrade』で更新実施。

$ brew upgrade groovy
Warning: Experimental support for using the "Command Line Tools" without Xcode.
Some formulae need Xcode to be installed (for the Frameworks not in the CLT.)
==> Upgrading groovy
==> Downloading http://dist.groovy.codehaus.org/distributions/groovy-binary-1.8.6.zip
######################################################################## 100.0%
==> Caveats
You should set the environment variable GROOVY_HOME to
  /usr/local/Cellar/groovy/1.8.6/libexec
Warning: Non-executables were installed to "bin".
Installing non-executables to "bin" is bad practice.
The offending files are:
/usr/local/Cellar/groovy/1.8.6/bin/startGroovy
==> Summary
/usr/local/Cellar/groovy/1.8.6: 39 files, 17M, built in 17 seconds
$

brew infoコマンドで確認。導入したバージョンが一覧表示され、現在導入切り替えを行った1.8.6の横に印(*)が移動してますね。

$ brew info groovy
groovy: stable 1.8.6, devel 2.0.0-rc-4
http://groovy.codehaus.org/
/usr/local/Cellar/groovy/1.8.6 (39 files, 17M) *
/usr/local/Cellar/groovy/2.0.1 (59 files, 25M)
https://github.com/mxcl/homebrew/commits/master/Library/Formula/groovy.rb

==> Caveats
You should set the environment variable GROOVY_HOME to
  /usr/local/Cellar/groovy/1.8.6/libexec
$ 

導入後のバージョンも切り替わってます。

$ groovy --version
Groovy Version: 1.8.6 JVM: 1.7.0_05 Vendor: Oracle Corporation OS: Mac OS X
$ 


次に、再度バージョンを切り替えてみます。切り替えの際には『brew cleanup』で環境を掃除し直す必要があるようです。

$ brew cleanup groovy
Removing /usr/local/Cellar/groovy/2.0.1...
$ 


brew infoコマンド実行…あれ?さっき入れた最新バージョン2.0.1が無い…?

$ brew versions groovy
1.8.6    git checkout affc4c8 Library/Formula/groovy.rb
2.0.0    git checkout 278a37d Library/Formula/groovy.rb
1.8.5    git checkout d90e061 Library/Formula/groovy.rb
1.8.4    git checkout b9c0c5d Library/Formula/groovy.rb
1.8.3    git checkout 998c8b4 Library/Formula/groovy.rb
1.8.2    git checkout dad52b5 Library/Formula/groovy.rb
1.8.1    git checkout 57286a1 Library/Formula/groovy.rb
1.8.0    git checkout e6f4d4a Library/Formula/groovy.rb
1.7.10   git checkout db01f6c Library/Formula/groovy.rb
1.7.8    git checkout 0476235 Library/Formula/groovy.rb
1.7.7    git checkout 2e8b386 Library/Formula/groovy.rb
1.7.6    git checkout b43149a Library/Formula/groovy.rb
1.7.5    git checkout b56ff28 Library/Formula/groovy.rb
1.7.4    git checkout cbb36af Library/Formula/groovy.rb
1.7.3    git checkout 6c5485b Library/Formula/groovy.rb
1.7.2    git checkout a9a3469 Library/Formula/groovy.rb
1.7.1    git checkout 0d0d7cd Library/Formula/groovy.rb
1.7.0    git checkout 8e9c287 Library/Formula/groovy.rb
1.6.5    git checkout e835f10 Library/Formula/groovy.rb
$

これ自分だけでしょうか?何かの不具合なのか、はたまた何かの拍子で消してしまったのか…ひとまず2.0.0に切り替える事にします。

$ git checkout 278a37d Library/Formula/groovy.rb
$ brew upgrade groovy
Warning: Experimental support for using the "Command Line Tools" without Xcode.
Some formulae need Xcode to be installed (for the Frameworks not in the CLT.)
==> Upgrading groovy
==> Downloading http://dist.groovy.codehaus.org/distributions/groovy-binary-2.0.0.zip
Already downloaded: /Library/Caches/Homebrew/groovy-2.0.0.zip
==> Caveats
You should set the environment variable GROOVY_HOME to
  /usr/local/Cellar/groovy/2.0.0/libexec
Warning: This keg was marked linked already, continuing anyway
==> Summary
/usr/local/Cellar/groovy/2.0.0: 59 files, 24M, built in 2 seconds
$

導入バージョンを確認してみます。戻っている事が確認出来ましたね。(※正確に言うと戻ってないけど)

$ brew info groovy
groovy: stable 2.0.0
http://groovy.codehaus.org/
/usr/local/Cellar/groovy/1.8.6 (39 files, 17M)
/usr/local/Cellar/groovy/2.0.0 (59 files, 24M) *
https://github.com/mxcl/homebrew/commits/master/Library/Formula/groovy.rb

==> Caveats
You should set the environment variable GROOVY_HOME to
  /usr/local/Cellar/groovy/2.0.0/libexec
$ groovy -v
Groovy Version: 2.0.0 JVM: 1.7.0_05 Vendor: Oracle Corporation OS: Mac OS X
$

(追記)『あれ、(2.0.1)消えた…?』の部分(=最新バージョンが消えたってところ)、早速いろふさんが新たにエントリとしてUPされておりました。これはとても助かります。ありがとうございます!

早速対応してみましょう。

$ git checkout master Library/Formula/groovy.rb  【←所定の内容でgit checkout実施】
shinyaa31-no-MacBook-Air:local shinyaa31$ brew versions groovy  【←一覧で内容を確認】
2.0.1    git checkout affc4c8 Library/Formula/groovy.rb  【←最新バージョンが復活している!】
2.0.0    git checkout 278a37d Library/Formula/groovy.rb
1.8.6    git checkout b688a91 Library/Formula/groovy.rb
1.8.5    git checkout d90e061 Library/Formula/groovy.rb
1.8.4    git checkout b9c0c5d Library/Formula/groovy.rb
1.8.3    git checkout 998c8b4 Library/Formula/groovy.rb
1.8.2    git checkout dad52b5 Library/Formula/groovy.rb
1.8.1    git checkout 57286a1 Library/Formula/groovy.rb
1.8.0    git checkout e6f4d4a Library/Formula/groovy.rb
1.7.10   git checkout db01f6c Library/Formula/groovy.rb
1.7.8    git checkout 0476235 Library/Formula/groovy.rb
1.7.7    git checkout 2e8b386 Library/Formula/groovy.rb
1.7.6    git checkout b43149a Library/Formula/groovy.rb
1.7.5    git checkout b56ff28 Library/Formula/groovy.rb
1.7.4    git checkout cbb36af Library/Formula/groovy.rb
1.7.3    git checkout 6c5485b Library/Formula/groovy.rb
1.7.2    git checkout a9a3469 Library/Formula/groovy.rb
1.7.1    git checkout 0d0d7cd Library/Formula/groovy.rb
1.7.0    git checkout 8e9c287 Library/Formula/groovy.rb
1.6.5    git checkout e835f10 Library/Formula/groovy.rb
$ git checkout affc4c8 Library/Formula/groovy.rb  【←あとはこれまで通り更新処理を実施】
$ brew upgrade groovy  【←あとはこれまで通り更新処理を実施】
Warning: Experimental support for using the "Command Line Tools" without Xcode.
Some formulae need Xcode to be installed (for the Frameworks not in the CLT.)
==> Upgrading groovy
==> Downloading http://dist.groovy.codehaus.org/distributions/groovy-binary-2.0.1.zip
Already downloaded: /Library/Caches/Homebrew/groovy-2.0.1.zip
==> Caveats
You should set the environment variable GROOVY_HOME to
  /usr/local/Cellar/groovy/2.0.1/libexec
==> Summary
/usr/local/Cellar/groovy/2.0.1: 59 files, 25M, built in 2 seconds
$ brew info groovy   【←導入状況を確認】
groovy: stable 2.0.1
http://groovy.codehaus.org/
/usr/local/Cellar/groovy/1.8.6 (39 files, 17M)
/usr/local/Cellar/groovy/2.0.0 (59 files, 24M)
/usr/local/Cellar/groovy/2.0.1 (59 files, 25M) *  【←導入環境が増え、現在のバージョン=最新バージョンとなっている】
https://github.com/mxcl/homebrew/commits/master/Library/Formula/groovy.rb

==> Caveats
You should set the environment variable GROOVY_HOME to
  /usr/local/Cellar/groovy/2.0.1/libexec
$ groovy -v  【←groovy自体のバージョンも確認。最新バージョンとなっている事が確認出来る】
Groovy Version: 2.0.1 JVM: 1.7.0_05 Vendor: Oracle Corporation OS: Mac OS X
$ 

今回はgroovyで試してみましたが、他の環境でも同様に利用可能ですのでバージョン切り替えの必要性が生じた場合は試してみてはいかがでしょうか。

  • (追記):導入バージョンが複数存在する場合、『brew switch』コマンドで迅速にバージョンを切り替えられることが出来るようです。
$ brew info groovy  【←現在の導入状況を確認】
groovy: stable 2.0.0
http://groovy.codehaus.org/
/usr/local/Cellar/groovy/1.8.6 (39 files, 17M)
/usr/local/Cellar/groovy/2.0.0 (59 files, 24M) *   【←現在のバージョン:2.0.0】
https://github.com/mxcl/homebrew/commits/master/Library/Formula/groovy.rb

==> Caveats
You should set the environment variable GROOVY_HOME to
  /usr/local/Cellar/groovy/2.0.0/libexec
$
$
$ brew switch groovy 1.8.6  【←バージョン切替を実行】
Cleaning /usr/local/Cellar/groovy/1.8.6
Cleaning /usr/local/Cellar/groovy/2.0.0
8 links created for /usr/local/Cellar/groovy/1.8.6
$
$
$ brew info groovy 【←現在の導入状況を確認】
groovy: stable 2.0.0
http://groovy.codehaus.org/
/usr/local/Cellar/groovy/1.8.6 (39 files, 17M) *  【←現在のバージョン:1.8.6】
/usr/local/Cellar/groovy/2.0.0 (59 files, 24M)
https://github.com/mxcl/homebrew/commits/master/Library/Formula/groovy.rb

==> Caveats
You should set the environment variable GROOVY_HOME to
  /usr/local/Cellar/groovy/2.0.0/libexec
$ brew switch groovy 2.0.0  【←バージョン切替を再度実行】
Cleaning /usr/local/Cellar/groovy/1.8.6
Cleaning /usr/local/Cellar/groovy/2.0.0
8 links created for /usr/local/Cellar/groovy/2.0.0
shinyaa31-no-MacBook-Air:local shinyaa31$ brew info groovy
groovy: stable 2.0.0
http://groovy.codehaus.org/
/usr/local/Cellar/groovy/1.8.6 (39 files, 17M)
/usr/local/Cellar/groovy/2.0.0 (59 files, 24M) *  【←現在のバージョン:2.0.0】
https://github.com/mxcl/homebrew/commits/master/Library/Formula/groovy.rb

==> Caveats
You should set the environment variable GROOVY_HOME to
  /usr/local/Cellar/groovy/2.0.0/libexec
$