Como Instalar Go en Linux
Como instalar y desinstalar go en linux y solucionar el problema de ‘Comand go not found’ o ‘command not found: go’.
Esta sección la hago debido a algo que me paso despues de instalar go y es que al apagoar la pc y correr go nuevamente me aparece ‘Comand go not found’ o ‘command not found: go’
Si tienes alguna instalación de go y estás instalando una nueva versión tendrás que desinstalarla.
Desinstalación de Go
El directorio de go se encuentra en /usr/local/go. En otras palabras puedes usar:
rm -rf /usr/local/go
En la guía de desinstalación de go nos dice que debemos quitar el directorio bin de nuestro PATH(environment variable)
Remove the Go bin directory from your
PATH
environment variable.Under Linux and FreeBSD, edit /etc/profile or $HOME/.profile. If you installed Go with the macOS package, remove the /etc/paths.d/go file.
https://golang.org/doc/manage-install
pero no nos dice como hacerlo.
Lo primero que debe hacer es saber es cual es la variable de entorno o PATH como desee llamarle.
echo $PATH
/home/luis/dotnet:/home/luis/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Luego de esto le diría que copie el PATH que le da a cambio y lo modifique para que no posea el bin de go.
export PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Listo eso deberia ser todo para Linux.
Instalar Go
Para instalar debemos bajar el archivo de la página de go https://golang.org/dl/ seleccionamos linux, una vez bajado el archivo debemos extraer este en /usr/local para esto usé el siguiente código en consola.
Carpeta donde esté el tar.gzsudo tar -C /usr/local -xzf go1.15.6.linux-amd64.tar.gz
Por último deberíamos agregar /usr/local/go/bin al PATH(environment variable).
Para ello tenemos que correr:
export PATH=$PATH:/usr/local/go/bin
El cambio no se dará hasta el reingreso de usuario.
Puede verificar que go fue instalado con el siguiente comando:
chequea versiongo version
‘Comand go not found’ o ‘command not found: go’
En mi caso luego de hacer esto, luego de reiniciar el pc go verion me da el error que hablamos al inicio de este tema para solucionar este error lo que puede hacer es colocar
~/{.bashrc} or {.zshrc}export PATH=$PATH:/usr/local/go/bin
Dentro de su archivo .bashrc o el archivo .zshrc si está usando zsh
Configuración de GOPATH
Puedes configurar en que carpeta quieres que tu código esta con GOPATH, primero deberemos crear una carpeta donde estara nuestro código.
crea la carpeta gomkdir -p ~/go
para setear el gopath environment puedes usar export GOPATH
setting GOPATHexport GOPATH="~/go"
El export anterior es probable que no ande en las versiones nuevas de go y le recomiendo utilizar el siguiente:
setting GOPATH [opción 2]export GOPATH="/home/<your_user>/go/"
En caso de haber corrido el comando anterior puedes correr el que utiliza el camino completo asi lo sobreescribira.
ademas vas a necesitar las carpetas src, bin, pkg dentro de la carpeta que emos puesto en el gopath en mi caso es ~/go
creando distintas carpetas dentro de la carpeta gomkdir -p ~/go/src mkdir -p ~/go/bin mkdir -p ~/go/pkg
Por ultimo tendríamos que tener una carpeta github.com para los repositorios clonados en la carpeta src
crea una carpeta github.com en srcmkdir -p ~/go/src/github.com
Mi recomendación para saber si necesitamos configurar GOPATH es que intentes usar una libreria externa como puede ser fyne.io
Con la última versión de go creo que no es necesario configurar el gopath y simplemente podemos crear una carpeta dentro de /usr/local/go/src pero probablemente estés usando la versión de go que viene con Linux, en ese caso es probable necesitarla.