現状、Google GoはLinux版とMac版のみのようです。出来れば、Windows版も出して欲しいです。
1. 環境の設定
・Go のソースコードのルートディレクトリを指定
export GOROOT=/usr/local/go
・Go をインストールするOSを設定
export GOOS=linux
・CPUのアーキテクチャ、32ビット系なので386を設定。64ビット系はamd64。
export GOARCH=386
・Goのバイナリのインストール先を指定
export GOBIN=/usr/local/bin
・envコマンドで設定を確認
# env|grep GO
GOBIN=/usr/local/bin
GOARCH=386
GOROOT=/usr/local/go
2.Python用ツールのインストール
Pythonのライブラリをインストールする際に、easy_installというツールを利用するため、python-setuptoolsをサーバにインストールします。
yum install python-setuptools
次に、Pythonで実装されたバージョン管理システムのMercurial をインストールします。
easy_install mercurial
3.Goソースコードのダウンロード
hgコマンドを用いて、goのソースコードをダウンロードします。
hg clone -r release https://go.googlecode.com/hg/ $GOROOT
4.Goのインストール
Go ソースコードのsrcディレクトリ以下に移動
cd $GOROOT/src
コンパイルのコマンドを実行
./all.bash
これが以外に上手くいかない。まずは、bisonが足りないと怒られたので、
bison -y -d cc.y
make: bison: Command not found
make: *** [y.tab.h] Error 127
と怒られてたので、
yum install bison
で、bison をインストール。
rootでコンパイルを実行したところ、以下のエラーがでる。どうやらrootユーザだとコンパイルが上手くいかない。
gopack grc _test/path.a _gotest_.8
make[2]: Leaving directory `/usr/local/go/src/pkg/path’
— FAIL: path.TestWalk
1. error expected, none found
node testdata/d/x mark = 2; expected 1
node testdata/d/y mark = 2; expected 1
node testdata/d/z mark = 2; expected 1
node testdata/d/z/u mark = 2; expected 1
node testdata/d/z/v mark = 2; expected 1
FAIL
make[1]: *** [test] Error 1
make[1]: Leaving directory `/usr/local/go/src/pkg/path’
make: *** [path.test] Error 2
一般ユーザに変更。/usr/local/go の所有権を丸ごと一般ユーザに設定。
su user
chown -R user:user /usr/local/go
cd $GOROOT/src
./all.bash
— cd ../test
0 known bugs; 0 unexpected bugs
5.Go 実行
ファイルを作成し、
touch hello.go
以下のコードを記述する。
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
コンパイルは、8gコマンドを使い、8lコマンドでリンクを作成します。CPUが32系は8、64系なら6g,6lとなります。
8g hello.go
8l hello.8
以下のように実行します。
./8.out