Estoy tratando de hacer un go get
:
go get github.com/go-sql-driver/mysql
y falla con el siguiente error:
package github.com/go-sql-driver/mysql: cannot download, $GOPATH not set. For more details see: go help gopath
cuando hago un go env
, una lista de valores de Go se muestra a continuación:
ubuntu@ip-xxx-x-xx-x:~$ go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr/lib/go"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CGO_ENABLED="1"
claramente el GOPATH no está configurado, ¿cómo y dónde lo configuro?
Veo muchos hilos que mencionan este error, pero ninguno que responda a mi pregunta, ¿qué archivo debe editarse para proporcionar un valor para esta ruta?
GOPATH
para usted: vea mi respuesta a continuación .Respuestas:
Nueva manera:
Mira esta respuesta.
Vieja forma:
Simplemente agregue las siguientes líneas a ~ / .bashrc y esto persistirá. Sin embargo, puede usar otras rutas que desee como GOPATH en lugar de $ HOME / go en mi muestra.
fuente
/usr/share/go
en el mío Ubuntu 13.10.$ source ~/.bashrc
;)Ubuntu 14.04
Además, puede agregar esta cadena al archivo
fuente
GOPATH debe establecerse en un directorio vacío recién creado. Este es el "espacio de trabajo", donde descarga paquetes, etc. Yo uso ~ / .go.
Por ejemplo:
fuente: http : //www.larry-ichelin/blog/2013/12/15/setting-up-a-go-environment-in-ubuntu-12-dot-04/
fuente
Nueva forma: módulos Go
Desde Go 1.11, ya no tiene que usar GOPATH. Simplemente vaya al directorio de su proyecto y haga esto una vez:
Old Way: GOPATH
Si insiste en trabajar con GOPATH, preste atención a esto:
De la documentación :
fuente
Si, por ejemplo, es un Ubuntu, después de instalar los paquetes:
Simplemente agregue las siguientes líneas a ~ / .bashrc (De su usuario)
fuente
No es necesario editar ningún archivo, solo podemos usar el comando anterior para editar directamente las variables de entorno Go.
fuente
Escribe este código en la Terminal.
Nota : Esto se restablecerá en cada nueva ventana de Terminal o reinicio del sistema.
Para ser persistente, pegue el siguiente código en su archivo
.zshrc
o de.bashrc
acuerdo con su shell. Esos archivos en su directorio de inicio . Será como a continuación.fuente
Necesitarás GOPATH más tarde también. Así que agrégalo a
~/.bashrc
.fuente
Si ha configurado algo que necesita modificación de las variables de entorno, por ejemplo, Java, Go, etc., será muy familiar.
Asumiré que tiene la siguiente estructura de directorios en algún lugar como su ruta Go:
sudo nano /etc/environment
PATH=...
e ir al final del mismo y añadir una coma:
después de la última ruta luego pegar en su plenago path
por ejemplo,/home/user/gocode
y listo, esto debería hacerlo persistente a través del sistema.
fuente
Esto es lo que me funcionó en Ubuntu 15.10 usando
fish shell
:Luego tuve que cambiar los permisos en la
go
carpeta (se configuró en root)fuente
go path podría estar donde quiera, solo cree un directorio y configure la variable de ruta global en el nombre de GOPATH en su entorno.
fuente
Con Go 1.8 (Q2 2017), no tendrá que editar ningún archivo si acepta el
GOPATH
valor predeterminado (configurado para usted)Puede ver los comentarios sobre el número 17262 y el voto de Twitter asociado :
fuente
Mi entorno de ir se parecía al tuyo.
Lo resolví configurando GOPATH en / usr / lib / go . Pruébalo.
fuente
GOPATH es una variable de entorno para su ubicación en el espacio de trabajo. GOROOT es una variable de entorno para su directorio de instalación. Aunque GOROOT y GOPATH se configuran automáticamente (si no hubiera un error) durante el tiempo de instalación, para especificarlo manualmente puede seguir el siguiente proceso. Además, para obtener más información, puede consultar la página wiki de GO .
Es mejor configurar GOPATH en un directorio dentro de su directorio de inicio, por ejemplo, $ HOME / go,% USERPROFILE% \ go (Windows).
En su tipo de terminal
en el documento abierto en la Terminal, presione i y agregue la siguiente ruta
presione ESC y escriba : x . Por último, debe reiniciar ( cerrar y abrir ) su terminal o Cerrar sesión y volver a iniciar sesión .
PRECAUCIÓN No establezca GOROOT y GOPATH en el mismo directorio, de lo contrario recibirá una advertencia.
fuente
Y es posible que desee comprobar por $ go env
fuente
(Ubuntu)
Si no establece un GOPATH, se usará el predeterminado.
Debe agregar $ GOPATH / bin a su PATH para ejecutar cualquier binario instalado en $ GOPATH / bin, o debe escribir $ GOPATH / bin / the-command. Agregue esto a su ~ / .bash_profile
Comando GOPATH actual:
Cambiar el comando GOPATH:
fuente
Esta ha sido la cosa más molesta con la que lidiar. Con la esperanza de ahorrarle tiempo.
IF go se instaló como usuario root. El usuario raíz del archivo de texto bash_profile de su sistema ~ / .bash_profile necesita tener $ GOROOT asignado al directorio go install y $ GOPATH debe asignarse al directorio go / src.
asegúrese de que el camino a seguir binario esté en su ruta en .bash_profile
RUTA = $ RUTA: $ INICIO / bin: / usr / local / bin: / usr / local / go / bin
Esta RUTA puede ser tan larga como una cadena debe ser ... para agregar nuevos elementos separados por dos puntos:
salir del editor vi y guardar el perfil de bash (: wq significa escribir y salir)
Debe cerrar sesión en la terminal e iniciar sesión nuevamente para que el perfil se inicie nuevamente ... o simplemente puede iniciarlo usando exportar.
Puedes verificar ir env:
¡Hurra!
Ahora puede sudo and go podrá descargar y crear directorios dentro de go / src y puede llegar a lo que estaba tratando de hacer.
ejemplo
Ahora te encontrarás con otro problema ... es posible que no tengas instalado git ... esa es otra aventura ... :)
fuente
go get
poner nada ni de lejosGOROOT
.En mi máquina Fedora 20 agregué las siguientes líneas a mi ~ / .bashrc:
fuente
GOROOT
. (A menos que esté en un subconjunto extremadamente pequeño de personas que usa una distribución binaria de Go pero la instala en un lugar donde no es estándar)Otra solución más: exportar todas
GO*
las variables de entorno dego env
.bashrc:
fuente
eval
suele ser una mala idea y una exageración en esta situación en mi humilde opiniónGOPATH
solamenteEdite su
~/.bash_profile
para agregar la siguiente línea:Guarde y salga de su editor. Luego, busca tu
~/.bash_profile
Nota: Establezca la ruta GOBIN para generar un archivo binario cuando se ejecuta go install
fuente
Este script te ayudará a cambiar Gopaths. https://github.com/buffonomics/goswitch
fuente
Como está escrito en las instrucciones oficiales :
Entonces, por ejemplo, si está codificando en Jetbrains Webstorm (usando el complemento Go ), es posible que desee configurarlo
GOPATH
como/Users/<user>/WebstormProjects
.En palabras más simples, configúrelo donde quiera que residan sus proyectos Go.
fuente
Puede usar la solución "exportar" tal como lo han sugerido otros usuarios. Me gustaría ofrecerle otra solución para su conveniencia permanente: puede usar cualquier ruta como GOPATH cuando ejecute los comandos Go.
En primer lugar, debe descargar una pequeña herramienta llamada
gost
: https://github.com/byte16/gost/releases . Si usa ubuntu, puede descargar la versión de Linux ( https://github.com/byte16/gost/releases/download/v0.1.0/gost_linux_amd64.tar.gz ).Luego debe ejecutar los siguientes comandos para descomprimirlo:
Conseguirías un ejecutable
gost
. Puede moverlo/usr/local/bin
para un uso conveniente:Ejecute el siguiente comando para agregar la ruta que desea utilizar como GOPATH en el espacio de ruta que
gost
mantiene. Es necesario darle a la ruta un nombre que usaría más adelante.Ejecute cualquier comando Go que desee en el formato:
Por ejemplo, desea ejecutar
go get github.com/go-sql-driver/mysql
con/home/foobar/bar
GOPATH, simplemente hágalo de la siguiente manera:Le ayudaría a configurar el GOPATH y ejecutar el comando. Pero recuerde que ha agregado la ruta en
gost
el espacio de ruta . Si está bajo cualquier nivel de subdirectorios de/home/foobar/bar
, incluso puede ejecutar el siguiente comando que haría lo mismo para abreviar:gost
es una herramienta simple de Go que puede ayudarlo a administrar GOPATHs y ejecutar comandos Go. Para obtener más detalles sobre cómo usarlo para ejecutar otros comandos Go, simplemente puede ejecutarlogost help goCmdName
. Por ejemplo, desea saber másinstall
, simplemente escriba las palabras a continuación en:También puede encontrar más detalles en el archivo README del proyecto: https://github.com/byte16/gost/blob/master/README.md
fuente
Debe actualizar la RUTA en función del terminal (bash o zsh) que utiliza.
~/.bashrc
o~/.zshrc
en un editorexport GOPATH=$HOME/go:/$HOME/projects/go
Aquí puede agregar una o más rutas separadas por un punto y coma
:
desde diferentes ubicaciones de sus proyectos GO en el sistema a laGOPATH
variable de entorno, es decir,/path/1:path/2:path/3
etc.En mi caso, he agregado 2 rutas, como se muestra arriba, una desde la raíz
$HOME/go
y la otra desde el directorio de proyectos:/$HOME/projects/go
fuente