Golang/Install
Ubuntu Install
- Ubuntu 18.04 inc. WSL
sudo apt install golang-go
- Ubuntu LTS 16.04
These steps allow to install more modern version of Golang than comes from official Ubuntu repositories. There was major changes between in 1.7 but default version seems to be 1.6.2. At the time of writing this I installed version go1.10.2.
Download from https://golang.org/dl/ and extract it into /usr/local
, creating a Go tree in /usr/local/go
sudo tar -C /usr/local -xzvf go$VERSION.$OS-$ARCH.tar.gz
Add /usr/local/go/bin to the PATH environment variable. You can do this by adding this line to your /etc/profile (for a system-wide installation) or $HOME/.profile:
sudo update-alternatives --install "/usr/bin/go" "go" "/usr/local/go/bin/go" 2 #adds to the $PATH export PATH=$PATH:/usr/local/go/bin #optional
Multiple versions
You can have multiple versions fo Golang installed in your system. The way to manage the current version in use is to use update-alternatives
Display best options
sudo update-alternatives --display go go - auto mode link best version is /usr/local/go/bin/go link currently points to /usr/local/go/bin/go link go is /usr/bin/go /usr/local/go/bin/go - priority 2
Before
Selection Path Priority Status ------------------------------------------------------------ 0 /usr/bin/golang-go 10 auto mode 1 /usr/bin/gccgo-go 5 manual mode 2 /usr/bin/golang-go 10 manual mode
Action: Installed manually unzipped GoLang into /usr/local/go
but was not added to alternatives. Use command below to add it on:
sudo update-alternatives --install "/usr/bin/go" "go" "/usr/local/go/bin/go" 2
After
Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/bin/golang-go 10 auto mode 1 /usr/bin/gccgo-go 5 manual mode 2 /usr/bin/golang-go 10 manual mode 3 /usr/local/go/bin/go 2 manual mode
Then run command to change go binary available in your shell
sudo update-alternatives --config go #then select ''3''
When you run
$ go version #the version of ''go'' will be the one from <tt>/usr/local/go</tt> location.