golang on Vine Linux
ちょっと寄り道。
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以外は問題なくインストール終了。
今日はここまで。