日々常々

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

brewとscalaとsbazと

神戸らへんでScalaでなんか話すためにScalaを起動しようとしたらインストールされてなかったのでセットアップしたときの話。

      • -

MacなのでScalaはbrewでインストールします。

brew install scala

いっぱつ。これでscalaは使えるんですけど、vimで書く時のハイライトが欲しくなる。どうやらsbazってのでscala-tool-supportをインストールしたらその中にあるらしい。


でもsbaz?そんなコマンドないよ…。
どうも私がbrewでインストールしたscala-2.9.2には入っていない模様。scala-2.9.1をインストールしたら入ってた。ちとアレコレしたのでメモっておく。

過去バージョンのインストールは、versionsで見て、checkoutして、installする。

$ brew versions scala
2.9.2    git checkout 9201a0c /usr/local/Library/Formula/scala.rb
2.9.1-1  git checkout 2e7cbfe /usr/local/Library/Formula/scala.rb
2.9.1    git checkout b78cfbd /usr/local/Library/Formula/scala.rb
2.9.0.1  git checkout cb1ab23 /usr/local/Library/Formula/scala.rb
2.9.0    git checkout 4002978 /usr/local/Library/Formula/scala.rb
2.8.1    git checkout 0e16b9d /usr/local/Library/Formula/scala.rb
2.8.0    git checkout fdb41a3 /usr/local/Library/Formula/scala.rb
2.7.7    git checkout 6a18e38 /usr/local/Library/Formula/scala.rb
2.7.6    git checkout a82e823 /usr/local/Library/Formula/scala.rb
2.7.5    git checkout e9dd256 /usr/local/Library/Formula/scala.rb
$ cd /usr/local
$ git checkout b78cfbd /usr/local/Library/Formula/scala.rb
$ brew install scala

こんな感じ。前のが入ってたらuninstallとかunlinkとかその辺ごにょごにょしてたらいける。あと/usr/local/binにあるファイルが邪魔でどーこーなったら適当にrmる。


複数バージョン入れてる時にinfoしたら入ってるだけでて、今使ってるのに * がつく。

$ brew info scala
scala: stable 2.9.2
http://www.scala-lang.org/
/usr/local/Cellar/scala/2.9.1 (3186 files, 98M)
/usr/local/Cellar/scala/2.9.2 (38 files, 26M) *
https://github.com/mxcl/homebrew/commits/master/Library/Formula/scala.rb

==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

インストール済んでるやつはswitchで切り替えられる。 brew switch scala 2.9.2 とかそんな感じ。でもなんか上手く行かない感じだったので、自分でごにょごにょがんばらなきゃかも。

sbazでインストールしたのんは /usr/local/Cellar/scala/2.9.1/libexec/misc に入る。その中の scala-tool-support/vim がお目当てのディレクトリ。あとは pathogen 使ってるから .vim/bundle に放り込んで終了。

$ cp -r /usr/local/Cellar/scala/2.9.1/libexec/misc/scala-tool-support/vim/ ~/.vim/bundle/scala-tool-support


ちょっと気持ち悪いことになってる。

$ ls -al /usr/local/bin | grep scala
lrwxr-xr-x   1 irof  admin    29  7 24 22:43 fsc -> ../Cellar/scala/2.9.2/bin/fsc
lrwxr-xr-x   1 irof  admin    30  7 24 22:32 sbaz -> ../Cellar/scala/2.9.1/bin/sbaz
lrwxr-xr-x   1 irof  admin    36  7 24 22:32 sbaz-setup -> ../Cellar/scala/2.9.1/bin/sbaz-setup
lrwxr-xr-x   1 irof  admin    31  7 24 22:43 scala -> ../Cellar/scala/2.9.2/bin/scala
lrwxr-xr-x   1 irof  admin    32  7 24 22:43 scalac -> ../Cellar/scala/2.9.2/bin/scalac
lrwxr-xr-x   1 irof  admin    34  7 24 22:43 scaladoc -> ../Cellar/scala/2.9.2/bin/scaladoc
lrwxr-xr-x   1 irof  admin    32  7 24 22:43 scalap -> ../Cellar/scala/2.9.2/bin/scalap