Instalación de Go en Centos 7

Aprendemos a instalar la herramienta Go en Centos 7. Go, a menudo denominado golang, es un lenguaje de programación de código abierto moderno creado por Google. Muchas aplicaciones populares, como Kubernetes, Docker, Hugo y Caddy, están escritas en Go.

Instalación de Go en Centos 7

A fecha de esta entrada la última versión de Go es la 1.12, que es la que usaremos para la instalación. Primero de todo nos debemos de ir a su página oficial , y seleccionar el fichero que más nos convenga:

Página de descargas de la web oficial de Go

Descargamos y comprobamos que el «checksum» corresponda con el indicado, para que no nos den gato por liebre.

  1. [davidochobits@servcentos]$ wget https://dl.google.com/go/go1.12.linux-amd64.tar.gz
  2. [davidochobits@servcentos]$ sha256sum go1.12.linux-amd64.tar.gz
  3. 750a07fef8579ae4839458701f4df690e0b20b8bcce33b437e4df89c451b6f13  go1.12.linux-amd64.tar.gz

Descomprimimos en la carpeta «/usr/local», tal como sigue:

  1. [davidochobits@servcentos]$ sudo tar -C /usr/local -xzf go1.12.linux-amd64.tar.gz

Ajustando las variable de entorno

Ahora necesitamos decirle a nuestro sistema dónde encontrar los binarios ejecutables de Go ajustando la variable de entorno PATH.

Podemos hacer esto agregando la siguiente línea al archivo «/etc/profile» (para una instalación en todo el sistema) o al archivo «$HOME/.bash_profile» (para una instalación actual del usuario):

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

Guardamos el ficheros y cargamos la nueva variable de entorno PATH en la sesión de shell actual con el siguiente comando:

  1. source ~/.bash_profile

Probando la instalación

Para probar si Go está instalado correctamente, configuraremos un espacio de trabajo y crearemos un programa simple «Hello world». Esta es la prueba más habitual.

Creamos el directorio de trabajo:

  1. mkdir ~/go

Creamos en el espacio de trabajo un directorio llamado «/go/src/hello», así:

  1. mkdir -p ~/go/src/hello

En dicho directorio creamos un fichero llamado hello.go, de esta manera:

  1. package main
  2.  
  3. import "fmt"
  4.  
  5. func main() {
  6.     fmt.Printf("Hello, World\n")
  7. }

Podemos ampliar información consultando este enlace.

Construimos el fichero:

  1. cd ~/go/src/hello
  2. go build

El numero ejecutable se llamará hello

Parea realizar la prueba:

  1. [davidochobits@servcentos hello]$ ./hello
  2. Hello, World

Y esto es todo, espero que os haya parecido y os sea de utilidad en algún momento.

Nos vamos leyendo.

Fuentes consultadas:

Linuxsize.com – How to Install Go on CentOS 7

2 Respuestas

  1. Hola David!

    Me sonaba este lenguaje de haberlo leido por ahí, pero gracias a tu artículo me ha picado la curiosidad y he investigado más en la wikipedia y parece pintar bien tanto para la programación de sistemas como la de aplicaciones. Según tu experiencia, crees que puede ser un lenguaje que vaya creciendo y con el tiempo y llegar a substituir a Java, C++ o C algún día? Tienes pensado seguir utilizando el lenguaje Go y publicar más artículos?

    No obstante, una cosa que me inquieta es que esté tan influenciado por Google. He visto que la licencia es BSD y se podrían hacer forks llegado el caso, pero la capacidad de «dirigir» la versión «oficial» y arrastrar a todo el mundo y dejar a las versiones alternativas muy atrasadas o con incompatibilidades me parece muy peligrosa. Tú qué opinas también sobre esto?

    Al principio pensaba hacerte una pregunta solo y al final me han salido algunas más, perdona 😛

    • Hola colega! menudo comentario me has dejado 🙂

      Pues resulta que muchos de los proyectos de lo que hablo en la web están escritos en Go, por eso he creído interesante hablar de su instalación en Centos 7. Respecto a tus preguntas, entiendo que puede ser un lenguaje de gran recorrido, ya no solo por todos los proyectos que lo utilizan si no también por la gran compañía que tiene detrás, Google.

      Respecto a su licencia y la posibilidad de realizar «forks» no te sabría decir, no he indagado lo suficiente en el tema.

      Un saludo!!

Deja un comentario

This site uses Akismet to reduce spam. Learn how your comment data is processed.