GOをUbuntu9.10へインストール

Ubuntu9.10に、google開発チームから発表された言語”GO”をインストールしてみたので
その時の履歴をメモっておきます。(インストール自体は、大分前にやっていたけどメモってなかった;)

以下、GO本家?を参考

結論から書くと、Ubuntuへのインストールは、非常に簡単!

→参考までに、自環境を明記

$ uname -a
Linux Ubuntu 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686 GNU/Linux

1.環境変数を設定

環境変数の設定が必要らしく、~/.bashrc 最終行へ以下のように追加設定
→ユーザhoge(ホームディレクトリ:/home/hoge)にて実施

export GOROOT=$HOME/go
export GOOS=linux
export GOARCH=386
export GOBIN=$HOME/bin

export PATH=$PATH:$GOBIN


追加したら、以下のコマンドにて設定されているかを確認

$ env | grep '^GO'
GOBIN=/home/hoge/bin
GOARCH=386
GOROOT=/home/hoge/go
GOOS=linux


2.ソースコードダウンロード

バージョン管理をMercurialにて行っている為、hgをインストールする

sudo apt-get install mercurial


リポジトリから、ソースコードを取得

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

上記実施すると、$GOROOT(この場合は、/home/hoge/go)に、ソースコードもろもろがコピーされてるので、ファイル群があることを確認

3.ビルド、インストール

ビルドに必要なコンパイラ、ライブラリ、ユーティリティをインストール
→既にインストールされているものもあるかもしれないけど、一応実施

$ sudo apt-get install bison gcc libc6-dev ed make


上記、インストール完了後に、ビルドを実施

$ cd $GOROOT/src
$ ./all.bash


完了後に、$GOBIN(この場合は、/home/hoge/bin)に、GO関連のコマンドができていることを確認

$ ls $GOBIN
6cov 6prof 8c 8l ebnflint godoc gomake gotest hgpatch
6nm 8a 8g cgo godefs gofmt gopack goyacc quietgcc


4.Hello, World プログラム

お決まりの「Hello, World」を出力するプログラムを作成

まず、以下の内容をテキストエディタにて、hello.go というファイル名で作成

package main

import "fmt"

func main() {
fmt.Printf("Hello, World\n")
}


コンパイルを実施(今回は、32bit環境を想定)

$ 8g hello.go

「hello.8」というファイルが作成されているかと思います。

次にリンクを実施

$ 8l -o hello hello.8

「hello」という実行ファイルが作成されているかと思います。

作成された「hello」を実行

$ ./hello
Hello, World


でけた。

捕捉的に

コンパイルやリンク実施において
386環境(INTEL/AMDの32bit環境)であれば8gコマンドでコンパイルし、8lコマンドでリンクを行い
AMD64環境(INTEL/AMDの64bit環境,EM64T)であれば6g、6lコマンド等を使用し
ARM環境であれば5g、5lコマンド等を使用するらしい