Configurar Go en Linux y MacOS a mano

Si quieres instalar manualmente Go, puedes descargarlo en formato tarball para tu ordenador y configurar las variables de entorno a mano. En esta lección te cuento cómo hacerlo.

Si no queremos usar el instalador de Go o instalarlo en una plataforma que no disponga de uno, podemos bajar manualmente Go para nuestro sistema operativo y arquitectura de computadores concreta.

Empezaremos por acudir a la página de descarga de Go, y en la tabla que hay en la parte principal de la página, tendremos que localizar la entrada correspondiente a nuestra arquitectura de computador y sistema operativo, y localizaremos la versión Archive, que será la que se oferta en formato .tar.gz. Por ejemplo, si queremos descargar Golang para Linux en un procesador de 64 bits de tipo ARM, buscaremos la fila que lleva por nombres Archive / Linux / x86-64. En el caso de un ordenador de tipo Apple Sillicon, será Archive / macOS / ARM64.

Tabla de descarga de versiones de Go

Una vez lo tengamos identificado, lo descargamos y lo extraemos en alguna parte.

El tarball de Go una vez descargado

Debemos extraer este tarball en alguna parte del ordenador. Preferentemente en un directorio que sea estable y que no haga falta limpiar cada poco tiempo. Es decir, idealmente no en la carpeta de descargas. Si tenemos permisos de administración, una alternativa podría ser extraerlo sobre una carpeta especial del ordenador, como /opt/go. También lo podemos dejar en el directorio personal, por ejemplo bajo un directorio como /home/patricio/sdk/go o como SDK/Go en la carpeta personal de macOS.

Es extremadamente recomendable NO dejar el SDK de Go directamente sobre el directorio personal en una carpeta llamada go. La razón por la que no deberías hacer esto, es porque por lo general luego Go crea ya un directorio llamado go dentro de tu carpeta personal para extraer bibliotecas locales, y sí le instalas ahí también el SDK de Go, seguramente luego empiecen a dar conflicto algunas cosas o sea más dificil limpiar archivos temporales.

En mi caso lo voy a hacer sobre el directorio $HOME/sdk/go:

cd $HOME
mkdir -p sdk
cd sdk
tar -xf $HOME/Downloads/go1.21.0.darwin-arm64.tar.gz
cd go

Dentro de este directorio, se tienen que haber creado todos los que vienen en el tarball de Go, como por ejemplo bin, api, pkg o lib. Si no ves estos directorios directamente dentro de tu distribución de Go, revisa que lo hayas descargado bien.

Una vez hayamos hecho este paso, será extremadamente recomendable agregar el subdirectorio bin al PATH de tu sistema operativo.

La variable de entorno PATH es una variable que contiene una tabla de directorios donde hay ejecutables en tu ordenador. Cuando en una terminal escribes el nombre de un archivo ejecutable sin especificar la ruta en la que está; por ejemplo, cuando escribes únicamente vim en vez de /usr/bin/vim, tu ordenador consulta esta tabla y trata de buscar si en uno de estos directorios de la lista hay algún archivo llamado así. De haberlo, ejecutará ese. Si agregamos directorios al PATH, por lo tanto, lo que estamos haciendo es enseñarle al sistema operativo que cuando se escriba el nombre de alguno de los ejecutables que ahí dentro se encontrase aunque no se especifique la ruta completa al ejecutable, se debe usar ese y no otro.

Por lo tanto, lo que haremos será identificar la ruta completa a la carpeta bin que viene dentro de tu distribución de Go. Esta carpeta es la que tiene los ejecutables go y gofmt. Una forma fácil de sacar la ruta completa si tenemos problemas es posicionarnos sobre la carpeta bin y ejecutar el comando pwd para que nos escriba la ruta completa a ese directorio:

cd bin
ls
  go    gofmt
pwd
  /home/danirod/sdk/go/bin

Ahora que tenemos esa ruta, tenemos que crear o modificar un archivo llamado .profile que puede que exista en el directorio personal, es decir, en $HOME/.profile. Si ese archivo ya existe, edítalo. Si no, crea un archivo con ese nombre dentro de tu directorio personal.

Al final del archivo, pon lo siguiente: export PATH=$PATH: y a continuación pegale esa ruta al directorio bin. Por ejemplo, en mi caso sería export PATH=$PATH:/home/danirod/sdk/go/bin, pero recuerda revisar el nombre donde lo has extraído. No dejes espacios de más antes de esta ruta. Entre ese PATH=$PATH y tu directorio, solo puede haber un caracter de dos puntos.

Finalmente, agrega una línea más y pon lo siguiente:

export PATH=$PATH:$HOME/go/bin

Con esto lo que hacemos es agregar también el PATH una ubicación que usará el compilador de Go para dejar software que instalemos mediante subcomandos como go get y go install, y por lo tanto será el directorio en el que se instalarán este tipo de herramientas. Es conveniente agregarlo al PATH, por lo tanto, para luego poder escribir únicamente delve, no tener que poner $HOME/go/bin/delve todo el tiempo, por ejemplo.

En mi caso, por ejemplo, las dos líneas que he tenido que poner al archivo .profile serán:

export PATH=$PATH:/home/danirod/sdk/go/bin
export PATH=$PATH:$HOME/go/bin

Una vez hayas hecho eso, tendrás que asegurarte de que tu terminal recarga estas variables de entorno. Lamentablemente, el proceso puede ser más complicado dependiendo del sistema operativo concreto. En algunas ocasiones, con reiniciar la terminal es suficiente. En otras, es posible que tengas que cerrar sesión y volver a iniciar sesión en tu entorno gráfico para que te detecte los cambios.

Ejecuta una terminal y prueba a escribir el comando go. Si recibes una salida coherente, como puede ser la información sobre cómo usar los subcomandos de Go, es que lo has instalado y configurado correctamente. Si obtienes el mensaje Comando no encontrado, es porque posiblemente algo se haya hecho mal. Revisa las instrucciones y mira si te has dejado algo.

Lista de reproducción
  1. 1
    Instalar Go
    5 minutos
  2. 2
    Configurar Go en Windows a mano
    4 minutos
  3. 3
    Configurar Go en Linux y MacOS a mano
    5 minutos
  4. 4
    Escribir el Hola Mundo
    11 minutos
  5. 5
    Variables con var
    10 minutos
  6. 6
    Los tipos de datos en Go
    9 minutos
  7. 7
    Variables tipadas e inferencia de tipos
    8 minutos
  8. 8
    Operador := y múltiples variables
    7 minutos
  9. 9
    Constantes
    4 minutos
  10. 10
    Funciones básicas
    6 minutos
  11. 11
    Paso de parámetros a funciones
    7 minutos
  12. 12
    Retorno de funciones
    5 minutos
  13. 13
    Operadores aritméticos
    6 minutos