How to install Go on Ubuntu 22.04 ?
Install and configure Go on Ubuntu 22.04
Objective
Go is one of the most famous language in the world. Its wide adoption in the past years makes it an unavoidable language in the development as Ops world. To have more information and the capabilities of the Go language see the official documentation.
In this tutorial you will learn how to install Go on the Ubuntu 22.04 Linux distribution.
Requirements
This tutorial assume that you have an Ubuntu 22.04, running in an OVHcloud Compute Instance for example, and some basic knowledges of how to operate it. If you don’t have a running Ubuntu 22.04, follow the guide to use an OVHcloud Compute Instance.
Instructions
In this tutorial, you will, first, install Go, then you will use it and to finish you learn how to switch between different installed versions.
At the time of writing this tutorial, the last LTS release of Go is 1.18.x.
Installation of Go
To install Go on Ubuntu, the easiest way is to use apt-get command:
sudo apt-get update && sudo apt-get -y install golang-go
Output should be like this:
$ sudo apt-get update && sudo apt-get -y install golang-go Hit:1 http://nova.clouds.archive.ubuntu.com/ubuntu jammy InRelease Hit:2 http://nova.clouds.archive.ubuntu.com/ubuntu jammy-updates InRelease Hit:3 http://nova.clouds.archive.ubuntu.com/ubuntu jammy-backports InRelease Hit:4 http://security.ubuntu.com/ubuntu jammy-security InRelease Ign:5 https://pkg.jenkins.io/debian-stable binary/ InRelease Hit:6 https://pkg.jenkins.io/debian-stable binary/ Release Reading package lists... Done Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: bzip2 cpp cpp-11 g++ g++-11 gcc gcc-11 gcc-11-base golang-1.18-go golang-1.18-src golang-src libasan6 libatomic1 libc-dev-bin libc-devtools libc6-dev libcc1-0 libcrypt-dev libdpkg-perl libfile-fcntllock-perl libgcc-11-dev libgd3 libgomp1 libisl23 libitm1 liblsan0 libmpc3 libnsl-dev libquadmath0 libstdc++-11-dev libtirpc-dev libtsan0 libubsan1 linux-libc-dev manpages-dev pkg-config rpcsvc-proto Suggested packages: bzip2-doc cpp-doc gcc-11-locales g++-multilib g++-11-multilib gcc-11-doc gcc-multilib autoconf automake libtool flex bison gdb gcc-doc gcc-11-multilib bzr | brz mercurial subversion glibc-doc debian-keyring bzr libgd-tools libstdc++-11-doc dpkg-dev The following NEW packages will be installed: bzip2 cpp cpp-11 g++ g++-11 gcc gcc-11 gcc-11-base golang-1.18-go golang-1.18-src golang-go golang-src libasan6 libatomic1 libc-dev-bin libc-devtools libc6-dev libcc1-0 libcrypt-dev libdpkg-perl libfile-fcntllock-perl libgcc-11-dev libgd3 libgomp1 libisl23 libitm1 liblsan0 libmpc3 libnsl-dev libquadmath0 libstdc++-11-dev libtirpc-dev libtsan0 libubsan1 linux-libc-dev manpages-dev pkg-config rpcsvc-proto 0 upgraded, 38 newly installed, 0 to remove and 14 not upgraded. Need to get 143 MB of archives. After this operation, 634 MB of additional disk space will be used. ... Scanning processes... Scanning candidates... Scanning linux images... Restarting services... Service restarts being deferred: systemctl restart systemd-logind.service No containers need to be restarted. No user sessions are running outdated binaries. No VM guests are running outdated hypervisor (qemu) binaries on this host.
Next, you can test your fresh installation:
go version
Output should be like this:
$ go version go version go1.18.1 linux/amd64
Go allow you to manage multiple installed versions. For example, to install the version 1.17:
go install golang.org/dl/go1.17@latest
Output should be like this:
$ go install golang.org/dl/go1.17@latest go: downloading golang.org/dl v0.0.0-20220510203206-88ea6714b1d9
The go command download the binary go1.17
in the folder ~/go/bin
.
Next, you can use this binary to install the version 1.17:
~/go/bin/go1.17 download
Output should be like this:
$ ~/go/bin/go1.17 download
Downloaded 0.0% ( 16384 / 134787877 bytes) ...
Downloaded 37.7% ( 50822784 / 134787877 bytes) ...
Downloaded 82.8% (111606960 / 134787877 bytes) ...
Downloaded 100.0% (134787877 / 134787877 bytes)
Unpacking /home/ubuntu/sdk/go1.17/go1.17.linux-amd64.tar.gz ...
Success. You may now run 'go1.17'
Your fresh installation of Go is in the folder /home/ubuntu/sdk/go1.17.
You can update your path environment variable if you want to use this version:
export PATH=/home/ubuntu/sdk/go1.17/bin:$PATH go version
Output should be like this:
$ export PATH=/home/ubuntu/sdk/go1.17/bin:$PATH
$ go version
go version go1.17 linux/amd64
Test Go installation
To test your Go installation, you can write an Hello World application. Create a helloworld.go file and past the following code:
package main import "fmt" func main() { fmt.Println("👋 Hello World.") }
Save and run it:
go run helloworld.go
Output should be like this:
$ go run helloworld.go
👋 Hello World.
That’s it, you have successfully installed and configured Go on Ubuntu 22.04.
Go further
Check the offers of public cloud instance on OVHcloud.