Como instalar Go on Ubuntu 22.04


Instalar y configurar Go en Ubuntu 22.04

Objetivo

Go es uno de los lenguajes de programación más populares en todo el mundo. Su amplia adopción en los últimos años lo convierte en un lenguaje imprescindible en el mundo del desarrollo. Para más información sobre todas las posibilidades que ofrece el lenguaje Go, consulte la documentación oficial.

En este tutorial aprenderá a instalar Go en una distribución Ubuntu 22.04 Linux.

 

Requisitos

Para poder seguir los pasos que se indican en esta guía, necesitará disponer de un VPS, un servidor Bare Metal o, como en nuestro ejemplo, una instancia Compute de OVHcloud con Ubuntu 22.04. Asimismo, también debe tener conocimientos básicos sobre el funcionamiento de una CLI. Si necesita ayuda para instalar una instancia Public Cloud con Ubuntu 22.04, consulte nuestra guía «Crear y conectarse a una instancia de Public Cloud».

 

Instrucciones

Esta guía explica los diferentes pasos que debemos seguir para instalar Go, utilizarlo y pasar de una versión instalada a otra diferente.

Durante la redacción de esta guía, la última versión publicada LTS de Go es la versión 1.18.x.

 

Instalación de Go

Para instalar Go en Ubuntu, utilice el comando apt-get:

sudo apt-get update && sudo apt-get -y install golang-go

Deberá obtener un resultado similar al que se incluye a continuación:

$ 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
Leyendo listas de paquetes... Realizada
Leyendo listas de paquetes... Realizada
Creando árbol de dependencias... Realizada
Leyendo información de estado... Realizada
Van a instalarse los siguientes paquetes adicionales:
  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
Paquetes sugeridos:
  bzip2-doc cpp-doc gcc-11-escenarios 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
Van a instalarse los siguientes paquetes NEW:
  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 actualizados, 38 recién instalados, 0 para eliminar y 14 no actualizados.
Se necesitan 143 MB de archivos.
Tras esta operación, se utilizarán 634 MB de espacio adicional en disco.
...
Escaneando procesos...                                                                                                                                                       
Escaneando candidatos...                                                                                                                                                      
Escaneando imágenes de Linux...                                                                                                                                                    

Reiniciando los servicios...
Reinicio del servicio en curso de aplazamiento:
 systemctl restart systemd-logind.service

No es necesario reiniciar ningún contenedor.

No hay sesiones de usuario ejecutando binarios obsoletos.

Ningún invitado de VM está ejecutando binarios obsoletos del hipervisor (qemu) en este host.

Verifique la instalación:

go version

Deberá obtener un resultado similar al que se incluye a continuación:

$ ir versión
go versión go1.18.1 linux/amd64

Go permite gestionar múltiples versiones instaladas. Por ejemplo, también puede instalar la versión 1.17:

vaya a instalar golang.org/dl/go1.17@latest

Deberá obtener un resultado similar al que se incluye a continuación:

$ ir a instalar golang.org/dl/go1.17@latest
go: downloading golang.org/dl v0.0.0-20220510203206-88ea6714b1d9

El comando go descarga el binario go1.17 en la carpeta: ~/go/bin.

Este binario se puede utilizar para instalar la versión 1.17:

~/go/bin/go1.17 descarga

Deberá obtener un resultado similar al que se incluye a continuación:


$ ~/go/bin/go1.17 descarga
Descargado 0,0% ( 16384 / 134787877 bytes) ...
Descargado 37.7% ( 50822784 / 134787877 bytes) ...
Descargado 82.8% (111606960 / 134787877 bytes) ...
Descargado 100.0% (134787877 / 134787877 bytes)
Descomprimiendo /home/ubuntu/sdk/go1.17/go1.17.linux-amd64.tar.gz...
Éxito. Ahora puede ejecutar «go1.17»

La última instalación de Go se encuentra en la carpeta: /home/centos/sdk/go1.17.

Si quiere utilizar esta versión, puede actualizar la variable de entorno PATH:

export PATH=/home/ubuntu/sdk/go1.17/bin:$PATH go version

Deberá obtener un resultado similar al que se incluye a continuación:


$ export PATH=/home/ubuntu/sdk/go1.17/bin:$PATH
$ ir versión
go versión go1.17 linux/amd64

Probar la instalación de Go

Pruebe la instalación de Go escribiendo una aplicación Hello World. Cree un archivo helloworld.go y pegue el código siguiente en su interior:

importación principal del paquete "fmt" func main() { fmt.Println("👋 Hello World.") }

Guárdelo y ejecútelo:

ve a ejecutar hellowworld.go

Deberá obtener un resultado similar al que se incluye a continuación:


$ go run hellowworld.go 
👋 Hola mundo.

Y eso es todo: ha instalado y configurado correctamente Go en Ubuntu 22.04.