Menu

Instalar Golang en Windows, macOS y Linux paso a paso

Cómo descargar e instalar Go en Windows, macOS y Linux, comprobar la instalación con go version, entender GOPATH y resolver el error "go: command not found".

Esta página incluye editores ejecutables: edita, ejecuta y ve el resultado al instante.

Descarga Go desde go.dev/dl, ejecuta el instalador para tu sistema, abre una terminal nueva y ejecuta go version. Esa es toda la instalación en Windows y macOS. En Linux extraes un tarball y añades un directorio a tu PATH. Las secciones siguientes cubren cada sistema, y después las comprobaciones y los errores con los que la gente se encuentra de verdad.

No necesitas tener Go instalado para probarlo. Este programa se ejecuta en tu navegador, con la misma versión de Go que usa el sitio, e informa de dónde se está ejecutando:

Cuando tengas Go instalado en local, el mismo programa imprimirá los datos de tu propia máquina.

Qué descarga elegir

La página de descargas ofrece un archivo por sistema operativo y arquitectura de CPU:

SistemaArchivoNotas
Windows, la mayoría de PCsgo1.24.5.windows-amd64.msiamd64 significa Intel o AMD de 64 bits
Windows en ARMgo1.24.5.windows-arm64.msiSurface Pro X, portátiles con Snapdragon
macOS, Apple Silicon (M1 y posteriores)go1.24.5.darwin-arm64.pkgdarwin es macOS
macOS, Intelgo1.24.5.darwin-amd64.pkg
Linux, la mayoría de servidores y PCsgo1.24.5.linux-amd64.tar.gz
Linux en ARMgo1.24.5.linux-arm64.tar.gzRaspberry Pi 4 y 5 con un sistema de 64 bits, AWS Graviton

El número de versión de estos ejemplos es 1.24.5. Descarga la versión estable más reciente que haya; los pasos no cambian entre versiones.

Instalar Go en Windows

  1. Descarga el archivo .msi y ejecútalo.
  2. Acepta las opciones por defecto. Go se instala en C:\Program Files\Go y el instalador añade C:\Program Files\Go\bin a tu PATH.
  3. Cierra todas las ventanas abiertas de Símbolo del sistema o PowerShell y abre una nueva. Las terminales que estaban abiertas durante la instalación siguen teniendo el PATH antiguo.
  4. Comprueba la instalación:
go version
go version go1.24.5 windows/amd64

winget también funciona, si prefieres un gestor de paquetes:

winget install GoLang.Go

Instalar Go en macOS

Con el paquete oficial

Descarga el .pkg para tu chip y ábrelo. Instala Go en /usr/local/go y añade /usr/local/go/bin a tu PATH mediante el archivo /etc/paths.d/go. Abre una ventana nueva de Terminal y luego:

go version
go version go1.24.5 darwin/arm64

Con Homebrew

brew install go
go version

Homebrew instala Go bajo su propio prefijo (/opt/homebrew en Apple Silicon) y enlaza go en un directorio que ya está en tu PATH. Más adelante actualiza con brew upgrade go.

Elige un solo método. Tener a la vez la instalación del .pkg y la de Homebrew significa dos binarios go en tu PATH, y gana el que aparece primero. which go te dice cuál está usando tu shell.

Instalar Go en Linux y Ubuntu

El método oficial funciona en cualquier distribución. Elimina antes cualquier instalación anterior, porque extraer encima de un árbol antiguo mezcla archivos de dos versiones y rompe la toolchain:

cd ~/Downloads
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.24.5.linux-amd64.tar.gz

Luego añade Go a tu PATH. Añade esta línea a ~/.profile (bash) o ~/.zshrc (zsh):

export PATH=$PATH:/usr/local/go/bin

Cárgala en el shell actual y comprueba:

source ~/.profile
go version
go version go1.24.5 linux/amd64

Paquetes de Ubuntu: apt y snap

Ubuntu ofrece dos atajos, cada uno con sus pros y sus contras:

# Distribution package: easy, but usually several releases old
sudo apt install golang-go

# Snap: tracks current Go releases
sudo snap install go --classic

La versión de apt importa más de lo que parece. Los módulos declaran una versión mínima de Go en go.mod. A partir de Go 1.21, un módulo que dice go 1.23 no compila con una toolchain más antigua salvo que Go pueda descargarte una más nueva, y las toolchains anteriores a 1.21 intentan compilar igualmente y fallan con la primera característica nueva que encuentran (consulta "Mantener Go actualizado" más abajo). Si instalas desde apt, ejecuta go version y compárala con go.dev/dl.

Comprobar la instalación

Tres comandos confirman que todo funciona:

go version
go env GOROOT GOPATH
which go
go version go1.24.5 linux/amd64
/usr/local/go
/home/ana/go
/usr/local/go/bin/go
  • GOROOT es donde está instalado el propio Go. Nunca pongas ahí tu código, y no deberías necesitar configurarlo.
  • GOPATH vale $HOME/go por defecto (%USERPROFILE%\go en Windows). Go guarda los módulos descargados en $GOPATH/pkg/mod y deja los programas compilados con go install en $GOPATH/bin.
  • which go (where go en Windows) muestra el binario exacto que ejecuta tu shell. Úsalo siempre que go version muestre una versión que no esperabas.

Ejecuta tu primer programa

Tu código puede estar en cualquier directorio. Crea una carpeta, inicia un módulo y escribe un archivo:

mkdir hello
cd hello
go mod init example.com/hello
go: creating new go.mod: module example.com/hello

Guarda esto como main.go en esa carpeta:

Luego ejecútalo:

go run .
Go is installed and working.

go run . compila el paquete del directorio actual y lo ejecuta. La página de hola mundo explica cada línea del programa, y el paso go mod init se cubre en módulos de Go.

Añadir GOPATH/bin al PATH

Las herramientas instaladas con go install van a $HOME/go/bin, que por defecto no está en tu PATH. Si instalas una herramienta y el shell dice que no la encuentra, añade también ese directorio:

go install golang.org/x/tools/cmd/goimports@latest
export PATH=$PATH:$(go env GOPATH)/bin
goimports -h

Pon la línea export en ~/.profile o ~/.zshrc para que sobreviva a las terminales nuevas. En Windows el instalador ya añade %USERPROFILE%\go\bin al PATH de tu usuario.

Mantener Go actualizado

Para actualizar, instala la nueva versión de la misma forma que instalaste la anterior. En Linux eso significa repetir los pasos rm -rf /usr/local/go y tar; no te saltes el borrado.

Desde Go 1.21, el comando go también puede descargar una toolchain más nueva cuando hace falta. Si el go.mod de un módulo dice go 1.24 y tienes instalado Go 1.22, ejecutar go build descarga Go 1.24 en la caché de módulos y lo usa, siempre que GOTOOLCHAIN siga en su valor por defecto, auto. Tu Go instalado no cambia; solo ese módulo se compila con la versión más nueva.

Para conservar una versión anterior para pruebas, instálala en paralelo:

go install golang.org/dl/go1.23.4@latest
go1.23.4 download
go1.23.4 version

Errores habituales de instalación

go: command not found o zsh: command not found: go. El shell no encuentra el binario. En Linux, comprueba que /usr/local/go/bin está en la línea export PATH del archivo que realmente lee tu shell (~/.zshrc para zsh, ~/.profile o ~/.bashrc para bash) y abre una terminal nueva. Ejecuta echo $PATH para ver lo que tiene el shell.

'go' is not recognized as an internal or external command (Windows). Cierra y vuelve a abrir la terminal. Si persiste, abre "Editar las variables de entorno del sistema", pulsa Variables de entorno y asegúrate de que C:\Program Files\Go\bin está en Path. La terminal integrada de VS Code hereda el entorno con el que arrancó VS Code, así que reinicia también VS Code.

go version muestra la versión antigua después de actualizar. Hay dos instalaciones en tu PATH. Ejecuta which -a go (o where go en Windows) y quita la que no quieras, a menudo un paquete de apt en /usr/bin/go que tapa a /usr/local/go/bin/go.

go: go.mod file not found in current directory or any parent directory. Go está bien instalado; has ejecutado go build o go run . fuera de un módulo. Ejecuta antes go mod init example.com/yourname en la carpeta del proyecto.

Errores de compilación extraños en la librería estándar tras actualizar en Linux. El tarball nuevo se extrajo encima del árbol antiguo. Borra /usr/local/go por completo y vuelve a extraerlo.

Permiso denegado al extraer. /usr/local pertenece a root, así que los comandos rm y tar necesitan sudo. Tu propio código nunca necesita sudo.

Configurar el editor

Sirve cualquier editor, pero instala el soporte para Go para tener autocompletado, resaltado de errores y formato al guardar. En VS Code, instala la extensión oficial de Go (publicada por el equipo de Go en Google); la primera vez que abres un archivo .go te ofrece instalar gopls, el servidor de lenguaje de Go. GoLand, de JetBrains, es la principal opción comercial. Vim y Neovim usan gopls a través de sus clientes LSP.

Preguntas frecuentes

¿Cómo instalo Golang?

Descarga el instalador para tu sistema desde go.dev/dl. En Windows ejecuta el .msi, en macOS el .pkg (o brew install go), y en Linux extrae el tarball en /usr/local y añade /usr/local/go/bin a tu PATH. Abre una terminal nueva y ejecuta go version para confirmarlo.

¿Cómo resuelvo "go: command not found"?

El shell no encuentra el binario go en tu PATH. En Linux, añade export PATH=$PATH:/usr/local/go/bin a ~/.profile (o a ~/.zshrc para zsh) y abre una terminal nueva. Con los instaladores de Windows y macOS la solución suele ser simplemente cerrar y volver a abrir la terminal, porque una terminal conserva el PATH con el que arrancó.

¿Cómo instalo Go en Ubuntu?

Usa el tarball oficial: sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.24.5.linux-amd64.tar.gz, y luego añade /usr/local/go/bin al PATH. sudo apt install golang-go también funciona, pero el paquete de Ubuntu suele ir varias versiones por detrás. sudo snap install go --classic sigue las versiones actuales.

¿Tengo que configurar GOPATH?

No. Desde Go 1.16 el modo módulo es el predeterminado, así que tu código puede estar en cualquier directorio. GOPATH vale $HOME/go por defecto y solo se usa para la caché de descargas de módulos y para los binarios que compila go install, que acaban en $HOME/go/bin.

¿Cómo compruebo qué versión de Go tengo instalada?

Ejecuta go version. Imprime algo como go version go1.24.5 linux/amd64: la versión, y después el sistema operativo y la arquitectura de la CPU. go env muestra la configuración completa, incluidos GOROOT (dónde está instalado Go) y GOPATH.

Coddy programming languages illustration

Aprende a programar con Coddy

COMENZAR