Installing Go on Ubuntu
This blog will walk through installing Go 1.14.1 on Ubuntu 18.04.4 LTS
1.Install ubuntu updates
sudo apt-get update sudo apt-get -y upgrade
2.Download Go binary
Next logical step is to download the Go binary file, Latest software will be available at https://golang.org/dl/ and to install the version of ubuntu run below commands in terminal
mkdir tmp cd /tmp wget https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz
Extract the downloaded tar and installing into the desired location in system. But generally following the documentation its best to install it under /user/local/go . Run below commands in terminal for installation
sudo tar -xvf go1.11.linux-amd64.tar.gz sudo mv go /usr/local
3.Environment setup
Three Go language environment variables we are setting are GOROOT , GOPATH and PATH.
GOROOTis the path where Go installed in the machine
GOPATH the location of the working directory.
In .profile file add above said global variables at the end of the file. You may want to add this into a .zshrc or.bashrc file as per your shell configuration.
export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
4.Renewing the shell sessions
source ~/.profile
5.Final check
Go should have been now installed successfully on the machine and to check if it is run below command
go version
and if its installed and configured well you should see below output on the terminal
GO111MODULE="" GOARCH="amd64" GOBIN="" GOCACHE="/home/xxx/.cache/go-build" GOENV="/home/xxx/.config/go/env" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOINSECURE="" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/home/rockey/go" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/usr/local/go" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="/home/xxx/snap/exercism/current/exercism/go/two-fer/go.mod" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build151852922=/tmp/go-build -gno-record-gcc-switches"
Resources for further reading :
- https://golang.org/ (official docs)
- https://go.dev/ ( developer portal)
- https://changelog.com/gotime (Go Time podcast) run by amazing people