In your $HOME/.bashrc, set the necessary environment variables:
export GOROOT=$HOME/go
export GOOS=linux # target operating system
export GOARCH=386 # target compiling architecture
Note that with golang, you are always "cross-compiling". So the values for $GOOS and $GOARCH are not necessarily corresponding to your Linux box.
Make sure you have the tools needed to build the golang compilers from source:
sudo apt-get install python-setuptools python-dev build-essential gcc mercurial
Then get the golang source code using mercurial:
cd $HOME && hg clone -r release https://go.googlecode.com/hg/ $GOROOT
Now let's build golang from the downloaded source code:
cd $GOROOT/src && ./all.bash
The golang executables will be built and placed into $HOME/bin (you can customize this by setting the environment variable $GOBIN). This will also run some tests on the build. In the end you should see something like:
--- cd ../test
N known bugs; 0 unexpected bugs
Here, N changes from version to version of golang. That's it! So now it's time for the customary "Hello, World". Open your favorite text editor and create a simple text file called hello.go:
package main
import "fmt"
func main() {
fmt.Printf("hello, world!\n")
}
Then build our executable (note that we're compiling for linux-386):
8g hello.go
8l hello.8
./8.out
In the end, you'll see a nice little "hello, world!"