Go言語の環境をソースからビルドする #golangjp
Go1がリリースされて以来、各環境のGoコンパイラは Downloads - go - The Go Programming Language - Google Project Hosting で簡単にダウンロードできるようになりました。 またLinuxやOSXでも、パッケージマネージャでGoコンパイル環境を整えることもできます。
ただ、Go言語をバリバリ書いていきたいという人には、 Goの環境を自分でコンパイルすることをオススメ します。新しいバージョンがリリースされたらすぐに更新できるようになります。
「え、コンパイラのコンパイルなんてムズカシイんでしょ?」なんて声も聞こえそうですが、そんなこともないです。
OSXの場合、基本的にxcodeさえ入っていればGoのコンパイル環境は整います。
メリットは:
- Goの新しいバージョンがリリースがされたらすぐに追従できる
- Goのtip(開発中のもの)を試せる
- クロスコンパイル環境を簡単に整えられるようになる(ARM Linuxな Raspberry PiでもPQI Air Cardでも動かせるよ)
- ...
といったところでしょうか。
なお、ここに書いた内容は、基本的に Installing Go from source - The Go Programming Language に書いてある内容をやっているだけです。 というわけでさっそくやってみましょう:
事前準備
Goのソースリポジトリは Mercurial が使われていますので、Mercurialをインストールします。 OSXでhomebrewをつかっている場合は:
$ brew install mercurial
で導入できます。 Linuxなどでも apt や yum でインストールしちゃいましょう:
$ sudo apt-get install mercurial
OR
$ sudo yum install mercurial
ソース取得
置いておきたい場所へ移動し、hg(mercurialのコマンド)を実行します:
$ cd ~/
$ hg clone -u release https://code.google.com/p/go
配置場所にこだわらないのであれば、ホームディレクトリに配置してしまうのがいいでしょう。
ビルド
そして、いよいよビルド:
$ cd go/src $ ./all.bash
最近のいいマシンを使っていれば、テストも含めて2分程度で完了します。早いですね!
そして:
ALL TESTS PASSED
が出たらおしまい。
仕上げ
.bashrcや.zshrcなどに:
export PATH=$PATH:$HOME/go/bin
を書いておきましょう。
また、必要に応じてGOPATHの設定を書けばよいと思います。 このあたりは How to Write Go Code - The Go Programming Language に詳しく書いてあります。
これで:
$ go version go version go1.1.2 darwin/amd64
などとでていれば完成です。
更新
これ以後、Goのリリースがあるたびに:
$ cd go/src $ hg pull $ hg update release $ ./all.bash
を実行すればOKです。
参考資料:
- Installing Go from source - The Go Programming Language
- InstallFromSource - go-wiki - Install Go from Source - Go Language Community Wiki - Google Project Hosting
- GoArm - go-wiki - Using Go on ARM powered machines - Go Language Community Wiki - Google Project Hosting
その他
開発中のバージョン(tip)にしたい:
$ hg update default
または、
$ hg update tip
でリポジトリをスイッチし、ビルドしましょう。
疑問
Q: 昔々、環境変数(GOROOT,GOARCHとかGOOSとか...)をたくさん設定したような記憶があるんだけど。。。
A: ここを読みましょう:
あなたがGOROOTを本当に設定しなくていい理由 | Androg Thanks @kwmt27 !!
Q: updateするスクリプトないの。
A: こんなん書いてみました。OSXでしか試してないですが。 : goupdate
おしまい。

- 作者: David Chisnall,デイビッド・チズナール,柴田芳樹
- 出版社/メーカー: ピアソン桐原
- 発売日: 2012/10/04
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 5回
- この商品を含むブログを見る

- 作者: 古川昇
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2012/11/21
- メディア: 単行本(ソフトカバー)
- クリック: 7回
- この商品を含むブログ (2件) を見る

- 出版社/メーカー: RS Components Ltd
- メディア: エレクトロニクス
- この商品を含むブログ (4件) を見る

PQI Air Card Wi-Fi内蔵SDカードアダプタ (アダプタのみモデル) 6W21-0000R1
- 出版社/メーカー: PQI
- 発売日: 2012/10/01
- メディア: Personal Computers
- クリック: 117回
- この商品を含むブログ (9件) を見る

- 作者: 藤原克則
- 出版社/メーカー: 秀和システム
- 発売日: 2013/02
- メディア: 単行本
- 購入: 3人 クリック: 13回
- この商品を含むブログ (6件) を見る