Googleのプログラミング言語であるGoの情報を紹介しています

現状、Google GoはLinux版とMac版のみのようです。出来れば、Windows版も出して欲しいです。

1. 環境の設定

OSはCentOS5です。ちょっと古いサーバなので、プロセッサはi386。
・Go のソースコードのルートディレクトリを指定
export GOROOT=/usr/local/go
・Go をインストールするOSを設定
export GOOS=linux
・CPUのアーキテクチャ。i366なので386を設定
export GOARCH=386
・Goのバイナリのインストール先を指定
export GOBIN=/usr/local/bin
・envコマンドで設定を確認
# env|grep GO
GOBIN=/usr/local/bin
GOARCH=386
GOROOT=/usr/local/goOSはCentOS5です。ちょっと古いサーバなので、プロセッサはi386。

・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

コメント

コメントする