Google Go言語をcolinux+Debian(lenny) on Windows XPでビルドしてみる

とまあ、ブログなんぞ書く習慣がないまま夏秋を超えたわけで。

Google が Go という新プログラミング言語をだしたのでブログ界隈が賑やかなのをきっかけに、colinux+Debian(lenny)でビルドしたログでも投下。

以下、全部メモ。

オフィシャルから本体とDebianのディスクイメージをゲット。バージョンは下記の通り。

colinux 0.75
Debian 5.0(lenny)

ネットの情報を頼りにインストール。
で、まだlennyのイメージを利用した情報がネットに転がっていない。(´・ω・`)ショボーン
仕方がないので、少し調べてみる。

Debian-5.0r2-lenny.7z(...7zipになってる)を解凍すると、なにやらディスクイメージ以外のファイルが。

Degian-5.0r2-lenny.ext3.2gb
debian-lenny.bat
debian-lenny.conf
README.txt

もう、この時点でイヤになった。
一瞬 4.0(これはネットでセットアップ事例が多かった)をセットアップしてからapt-get dist-upgrade とか考えたが、今後の事も考えて却下。

うにうにファイルを読んでいるとだいたいこんな感じカーと分かった(colinuxは素人)

Degian-5.0r2-lenny.ext3.2gb:ディスクイメージ
debian-lenny.bat:colinux 起動用バッチ
debian-lenny.conf:lenny 用にコンフィグされたcolinux設定ファイル
README.txt:りどみ

…うん、簡単じゃん。
とりあえずりどみ以外をcolinuxをインストールした先のフォルダにブチ込んで起動用バッチをぶっ叩く。

すんなり起動。簡単になったなあ。。。

ルートのログインパスは「colinux」。
そんで、スワップ用のイメージをcolinux付属のユーティリティで作成し、Debian上でmakeswap、/etc/fstab編集、reboot。
freeしてスワップが認識されてることを確認。

次はネットワーク。ホストのWindows側のローカルネットワーク接続をインターネット共有するようにして、Tap32(colinuxの仮想NIC)と繋ぐ。

Debian 側で /etc/network/interfaces を編集する。nanoって初めて使ったかも。edやcatするより良いな。使いやすい。
/etc/init.d/networking reboot でNICを再起動。。。あれ?www.yahoo.co.jpにpingが通らないYO!
。。。そうでした。こののネットワークはそう言う人でした。

気を取り直してホスト側のNICping。。。やっぱりダメだYO!。設定失敗しているYO!
とまあ、バタバタしていたら、debian-lenny.conf 上の eth0 の割り当てが違ってた。slirpって方式になっている。
。。。そのうち検証するとして、tuntap(TAP32)に変更したところ、動きました。
うん、簡単にできたと言っても設定は確認しなきゃダメだね。。。orz

で、次はapt-getがプロクシ経由で通るように、/etc/apt/apt.conf.d/に99userというファイルを作成して、
http://maskot1977.blog6.fc2.com/blog-entry-242.htmlを参考に、編集。
無事 apt-get update/apt-get apgradeできました。

続いて、作業用ユーザを作成。SSHでログインするために apt-get ssh して /etc/sshd を編集。とりあえずSSH経由でパスワードログインとする。公開鍵認証は後回しにしよう。

  • Go ビルド

今回のメーンは google go programming languag のビルドなので、mercurial をインストールする。
まあ、apt-get mercurialPython ごと入るみたいだけど。便利だね。apt-get。
で、プロクシ周りの環境を整えてhttp://golang.org/doc/install.htmlに従ってリポジトリのクローンとビルドをしたけれども、、、。

。。。ビルドのテストでプロクシを利用してくれないので怒られたよ?

しかたがないのでごそごそやって、http://codereview.appspot.com/154042 を発見。
パッチをダウンロード。colinux向けに切った共有ディレクトリに格納。

colinux起動。

ああ、共有ディレクトリの自動マウントしてないな。。。/etc/fstab書くか。http://www.siwa32.com/?p=72 こことか参考に。

で、パッチ当てる。。。which patch。。。おお、patchコマンドもインストールしねーとだめなのか?
パッチ当てて、再度 $HOME/go/src/all.bash
頑張れ!Debian

がんばり中。なんかビルドテストの/pkg/net/あたりですごい詰まる。。。色々調べてみるとどうもテストケースが悪いッぽい。そのうちなんとかなるだろー的な感じで抜いておく。
(ちょっと調べた限りではテストケース側が悪い模様。。。?)

で、無事ビルド完了。$HOME/binにコンパイラとリンカが作成されていることを確認してから、$HOME/go/doc/ の配下にあるテキトーなサンプルをコンパイル+リンクして確認。

うむぅ。意外と手間取ったな。。。