Homebrewでバージョンを切り替える
Homebrewで前のバージョンのパッケージを使いたいことがあったので、手順をメモっておきます。
例としてScalaのバージョンを切り替えたい時はこんな感じになります。
バージョン確認
とりあえず現在のバージョンを確認。今回は2.9.1を使っていたので2.8.1に変えてみます。
takashabe@mba-2 ~ % brew info scala scala 2.9.1 http://www.scala-lang.org/ /usr/local/Cellar/scala/2.9.1 (115 files, 27M) Bash completion has been installed to: /usr/local/etc/bash_completion.d http://github.com/mxcl/homebrew/commits/master/Library/Formula/scala.rb takashabe@mba-2 ~ % scala -version Scala code runner version 2.9.1.final -- Copyright 2002-2011, LAMP/EPFL
バージョン変更
brew versions Formulaすると使用可能なバージョン一覧が出てくるので、変更したいバージョンにgit checkoutします。
takashabe@mba-2 ~ % cd /usr/local takashabe@mba-2 /usr/local (master*) % brew versions scala 2.9.1 git checkout 43d80e3 Library/Formula/scala.rb 2.8.1 git checkout 711b753 Library/Formula/scala.rb 2.9.0.1 git checkout 65ae687 Library/Formula/scala.rb 2.9.0 git checkout 4002978 Library/Formula/scala.rb 2.8.0 git checkout fdb41a3 Library/Formula/scala.rb 2.7.7 git checkout 6a18e38 Library/Formula/scala.rb 2.7.6 git checkout a82e823 Library/Formula/scala.rb 2.7.5 git checkout e9dd256 Library/Formula/scala.rb takashabe@mba-2 /usr/local (master*) % git checkout 711b753 Library/Formula/scala.rb
あとはbrew upgradeすればバージョンが変更されてます。
takashabe@mba-2 /usr/local (master*) % brew upgrade scala ==> Upgrading scala ==> Downloading http://www.scala-lang.org/downloads/distrib/files/scala-2.8.1.final.tgz File already downloaded in /Users/takashabe/Library/Caches/Homebrew /usr/local/Cellar/scala/2.8.1: 114 files, 22M, built in 2 seconds takashabe@mba-2 /usr/local (master*) % brew info scala scala 2.8.1 http://www.scala-lang.org/ /usr/local/Cellar/scala/2.8.1 (114 files, 22M) * /usr/local/Cellar/scala/2.9.1 (115 files, 27M) http://github.com/mxcl/homebrew/commits/master/Library/Formula/scala.rb takashabe@mba-2 /usr/local (master*) % scala -version Scala code runner version 2.8.1.final -- Copyright 2002-2010, LAMP/EPFL
元のバージョンに戻す
元のバージョンに戻すときも基本的に同様の手順になりますが、既にHomebrewに存在するパッケージのバージョンを変更しようとするとbrew upgradeが上手く動いてくれず、/usr/local/binのシンボリックリンクが変更前のパッケージを指したままになったりして面倒なので一度brew cleanupしておきます。
takashabe@mba-2 /usr/local (master*) % brew cleanup scala Removing /usr/local/Cellar/scala/2.9.1... takashabe@mba-2 /usr/local (master*) % brew versions scala 2.9.1 git checkout 43d80e3 Library/Formula/scala.rb 2.8.1 git checkout 711b753 Library/Formula/scala.rb 2.9.0.1 git checkout 65ae687 Library/Formula/scala.rb 2.9.0 git checkout 4002978 Library/Formula/scala.rb 2.8.0 git checkout fdb41a3 Library/Formula/scala.rb 2.7.7 git checkout 6a18e38 Library/Formula/scala.rb 2.7.6 git checkout a82e823 Library/Formula/scala.rb 2.7.5 git checkout e9dd256 Library/Formula/scala.rb takashabe@mba-2 /usr/local (master*) % git checkout 43d80e3 Library/Formula/scala.rb takashabe@mba-2 /usr/local (master*) % brew upgrade scala ==> Upgrading scala ==> Downloading http://www.scala-lang.org/downloads/distrib/files/scala-2.9.1.final.tgz File already downloaded in /Users/takashabe/Library/Caches/Homebrew ==> Downloading https://raw.github.com/scala/scala-dist/27bc0c25145a8/completion.d/2.9.1/scala ######################################################################## 100.0% ==> Caveats Bash completion has been installed to: /usr/local/etc/bash_completion.d ==> Summary /usr/local/Cellar/scala/2.9.1: 115 files, 27M, built in 3 seconds takashabe@mba-2 /usr/local (master*) % brew info scala scala 2.9.1 http://www.scala-lang.org/ /usr/local/Cellar/scala/2.8.1 (114 files, 22M) /usr/local/Cellar/scala/2.9.1 (115 files, 27M) * Bash completion has been installed to: /usr/local/etc/bash_completion.d http://github.com/mxcl/homebrew/commits/master/Library/Formula/scala.rb takashabe@mba-2 /usr/local (master*) % scala -version Scala code runner version 2.9.1.final -- Copyright 2002-2011, LAMP/EPFL
無事切り替わりましたね。めでたしめでたし。
一時的に特定のバージョンを使いたい場合なんかで便利だと思います。