01 Instalar Go en Linux

Published Apr 1, 2023

GoProgramming

🚀 Introducción a Golang

Go es un lenguaje de programación de código abierto creado por Google, diseñado con tres objetivos clave: simplicidad, velocidad de ejecución y concurrencia eficiente.

Una de las cosas que más me gusta de Go es que puedes crear programas ejecutables para diferentes sistemas operativos sin depender de plataformas externas, como sucede con Java (que necesita la JVM para funcionar). En cambio, con Go, el binario generado ya está listo para ejecutarse, sin instalar nada adicional.

Además, Go es fácil de aprender, ideal para aprovechar múltiples núcleos de procesadores gracias a su sistema de concurrencia con goroutines y channels, y tiene una curva de aprendizaje bastante amigable para quienes están comenzando.

Si quieres probar Go sin instalarlo, puedes usar su entorno en línea: 👉 https://go.dev/play/

Personalmente, prefiero instalarlo localmente para trabajar más cómodo. Uso el playground solo para probar cosas rápidas o debugear funciones.

🧰 Instalación de Go

¿Cómo se instala?

Depende de tu sistema operativo. Aquí te explico cómo hacerlo en Linux, aunque los pasos para Windows y macOS están muy bien explicados en la web oficial.

🐧 Instalación en Linux

  1. Descarga el archivo .tar.gz desde https://go.dev/dl/.
  2. Extrae el archivo en /usr/local:
sudo tar -C /usr/local -xzf go1.xx.x.linux-amd64.tar.gz
  1. Luego, edita tu archivo .bashrc o .zshrc (según el shell que uses) y agrega lo siguiente:
export PATH=$PATH:/usr/local/go/bin
  1. Guarda y cierra el archivo. Luego reinicia la terminal y ejecuta:
go version

¡Listo! Ya tienes Go funcionando en tu máquina.

🧠 Variables de Entorno Importantes

  • GOROOT: Especifica dónde está instalado Go. No es necesario configurarla si instalaste Go en /usr/local/go, ya que Linux ya lo encuentra por defecto.
  • GOPATH: Directorio donde se guardan tus proyectos y las dependencias descargadas con go get.

Ejemplo de configuración (en .bashrc o .zshrc):

export GOPATH=/home/tu_usuario/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:/usr/local/go/bin:$GOBIN

👋 Hola Mundo en Go

  1. Crea una carpeta para tu proyecto:
mkdir ~/Desktop/hola_mundo
cd ~/Desktop/hola_mundo
  1. Inicializa el módulo de Go:
go mod init github.com/tu_usuario/hola_mundo
  1. Crea un archivo main.go con el siguiente contenido:
package main

import "fmt"

func main() {
    fmt.Println("Hola Mundo")
}
  1. Ejecuta el programa:
go run main.go

🎉 ¡Felicidades! Acabas de correr tu primer programa en Go.

🛠️ go mod tidy

Después de inicializar el módulo, ejecuta:

go mod tidy

Este comando descarga automáticamente las dependencias y mantiene limpio tu archivo go.mod.

🧼 Formatear tu código con go fmt

Go tiene su propio formateador de código que asegura que todos escribamos de manera uniforme.

go fmt main.go

Este comando limpia tu código, elimina puntos y comas innecesarios y borra imports no utilizados.

🛠️ Compilar tu programa como binario

Una de las joyas de Go es que puedes compilar tu código para distintos sistemas operativos desde cualquier sistema.

Sistema Operativo GOOS GOARCH
Linux linux amd64
MacOS darwin amd64
Windows windows amd64

Ejemplo para Linux:

GOOS=linux GOARCH=amd64 go build -o mi_programa

Ejemplo para Windows:

GOOS=windows GOARCH=amd64 go build -o mi_programa.exe

Puedes encontrar la lista completa de sistemas en: 👉 Listado oficial de GOOS y GOARCH

✅ Conclusión

En esta lección aprendiste qué es Go, cómo instalarlo, cómo configurar tu entorno, escribir tu primer programa (Hola Mundo) y cómo compilarlo como binario para distintos sistemas. Además, conociste herramientas clave como go mod y go fmt.

🛠️ Práctica recomendada

  1. Escribe un programa que imprima tu nombre y tu lenguaje favorito.
  2. Compílalo para Windows y Linux.
  3. Prueba el comando go fmt y mira qué cambios hace en tu archivo.

🚀 Siguientes pasos

  • Aprender sobre tipos de datos básicos en Go: int, string, bool, float.
  • Entender cómo funcionan las funciones y estructuras de control (if, for, switch).
  • Introducción a goroutines y canales, uno de los puntos fuertes de Go.