日々常々

ふつうのプログラマがあたりまえにしたいこと。

brewのversionsで最新がとれなくなったとき

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

最後のとこが気になったので。


手元の環境で brew versions groovy をしてみる。

$ brew versions groovy
2.0.1    git checkout affc4c8 /usr/local/Library/Formula/groovy.rb
2.0.0    git checkout 278a37d /usr/local/Library/Formula/groovy.rb
1.8.6    git checkout b688a91 /usr/local/Library/Formula/groovy.rb
1.8.5    git checkout d90e061 /usr/local/Library/Formula/groovy.rb
1.8.4    git checkout b9c0c5d /usr/local/Library/Formula/groovy.rb
(略)

うん。で、1.8.6をインストールしてみる。

$ git checkout b688a91 /usr/local/Library/Formula/groovy.rb
$ brew upgrade groovy
==> Upgrading groovy
==> Downloading http://dist.groovy.codehaus.org/distributions/groovy-binary-1.8.6.zip
Already downloaded: /Users/irof/Library/Caches/Homebrew/groovy-1.8.6.zip
(略)

$ 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

はいった。
ここで brew versions groovy をする。

$ 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
(略)

おお、2.0.1が消えた。

対処

Library/Formula/groovy.rbを戻せば良いです。git status 叩けばmodifyになってるのがわかります。*1

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	modified:   Library/Formula/groovy.rb
#	modified:   Library/Formula/scala.rb
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	Library/Formula/adamem.rb
#	Library/Formula/asterisk.rb
(略)

てことで戻しましょう。

$ git checkout master Library/Formula/groovy.rb
$ 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
(略)

めでたしめでたし。

どうでもいいこと

これ書きながら何度も git versions… とか brew checkout… とか叩いて半ばパニックになってました。

*1:あ、scalaもcheckoutしたままになってた……。他のUntrackedはなんだろう。わからん。