Here is a short recipe I use for installing multiple versions of Go from source. In this example I’m going to install the release (currently Go 1.3.1) and trunk versions of Go.
Step 1. Checkout
Checkout two copies of the Go source code into independent paths.
% hg clone https://code.google.com/p/go -r release $HOME/go.release % hg clone https://code.google.com/p/go $HOME/go.trunk
Step 2. Build
Build and run the tests for both versions.
% cd $HOME/go.release/src && ./all.bash % cd $HOME/go.trunk/src && ./all.bash
Step 3. Done
That’s it, we’re done. You can now invoke whichever version of Go you want by invoking the go
tool like so
% $HOME/go.release/bin/go test $YOURPACKAGE # test with the release version % $HOME/go.trunk/bin/go test $YOURPACKAGE # test with the trunk version
If you want a particular version of Go to be your default, add that version’s bin
directory to your $PATH
export PATH=$PATH:$HOME/go.release/bin:$GOPATH/bin
Look Ma, no $GOROOT!
You’ll notice that I didn’t set $GOROOT
. You don’t need to set $GOROOT
, ever1.
- Unless you’re using Windows, and have decided to not follow the instructions from the golang.org site. Please refer to this helpful infographic for full details.