golang on Vine Linux

ちょっと寄り道。http://golang.org/doc/logo-153x55.png
GoogleがリリースしたGoという言語。使ってみたい、と思ったらWindows版は無いのね。しかたなく以前仮想環境にインストールしたVine Linux 4.2でチャレンジしてみた。結論からいうとVine Linuxなら5でやったほうがいいよ、導入で挫折しちゃうから。
とりあえず挫折状況をメモしておくよ。

1. easy-installが無い

検索したらez_setup.pyを使うとインストールできるらしい。ez_setup.pyをダウンロードして

python ez_setup.py

Makefileがないってエラー。
うーん、なんか足りないんだろうな。とりあえずパッケージマネージャでpython-toolsとpython-develが入ってなかったのでインストールしてみる。
で、再チャレンジ。。。上手くいった!

続いて

easy-install mercurial

成功!
続いて各環境変数を設定した後、

hg clone -r release https://go.googlecode.com/hg/ $GOROOT

これも成功!

2. stdio_file.soが無い

一応bison,gcc,glibc,ed,makeが最新版(少なくともパッケージマネージャはそういってる)であることを確認して

./all.bash

しばらく順調に進んでいたのだが、エラー発生。
stdioのパッケージ作成中にテストプログラムの実行時にstdio_file.soという共有ライブラリが見つからない、と。
エラーが発生した直前のログを見てみると、

cp _file.a .../stdio/_file.so

怪しい、実に怪しい。
上記を実行しているMakefileを探してみる。
Make.pkgというのが見つかった。上記の処理をしているところでは$(elm)_というプレフィックスを付加している。どうもelmが上手く生成できていないらしい。elmはlastwordという関数を使って作成している。
lastwordで検索してみるとGNU Makeの3.81で追加された関数であることがわかった。まさか。。。案の定インストールされているmakeのバージョンは3.8だった。ガーン。
幸いlastwordを既存の関数の組み合わせで実行する記述が記載されていたので、これでMake.pkgを書き換えた。
再度all.bashを実行。
。。。
終わらない。先ほどと同じところまで進んでいるが、テストプログラムが終わらない。
テストプログラムの内容を見てみると、helloとfibとchainを順番に実行してrun.outに出力をリダイレクトしている。で、run.outを見てみるとfibを実行するところまで進んでいるがfibの出力はない。
fib.goの内容を見ると並列処理で出力するみたい。でも出力する前に止まってる。
うーん。これ以上は無理!

ってことでVine Linux 5に乗り換え。再度1から。easy-install以外は問題なくインストール終了。
今日はここまで。