variable mac gopath golang descargar compilador macos go

macos - mac - Ir a instalar siempre falla, no hay directorio de instalación fuera de GOPATH



install golang osx (10)

Cuando no proporciona argumentos para go install , de manera predeterminada intenta instalar el paquete en el directorio actual. El mensaje de error le dice que no puede hacer eso, porque el directorio actual no es parte de su $GOPATH .

Tu también puedes:

  • Defina $GOPATH en su $ HOME ( export GOPATH=$HOME ).
  • Mueva su fuente dentro del $GOPATH actual ( mv ~/src/go-statsd-client /User/me/gopath ).

Después de cualquiera, ir al directorio go-statsd-client y tipear go install funcionará, y también lo hará tipeando go install go-statsd-client desde cualquier lugar en el sistema de archivos. Los binarios construidos irán a $GOPATH/bin .

Como sugerencia no relacionada, es probable que desee github.com/you/go-statsd-client espacio de nombre a su paquete con un nombre de dominio, para evitar el conflicto de nombres (por ejemplo, github.com/you/go-statsd-client , si es allí donde tiene su código fuente).

~/src/go-statsd-client> echo $GOPATH /Users/me/gopath ~/src/go-statsd-client> echo $GOROOT /usr/local/Cellar/go/1.1.1/ ~/src/go-statsd-client> go install go install: no install location for directory /Users/me/src/go-statsd-client outside GOPATH

No importa en qué estructura se encuentre el proyecto, siempre falla con el mismo mensaje. Go build funciona a la perfección.

Aquí está mi go env

GOARCH="amd64" GOBIN="" GOCHAR="6" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="darwin" GOOS="darwin" GOPATH="/Users/me/gopath" GORACE="" GOROOT="/usr/local/Cellar/go/1.1.1" GOTOOLDIR="/usr/local/Cellar/go/1.1.1/pkg/tool/darwin_amd64" CC="gcc" GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread -fno-common" CGO_ENABLED="1"

Esto está en Mac OSX Mountain Lion y se instaló con homebrew.


En Windows, mi ventana de cmd ya estaba abierta cuando configuré la variable de entorno GOPATH. Primero tuve que cerrar el cmd y luego volver a abrirlo para que sea efectivo.


En mi caso (OS X) fue porque configuré GOPATH en /home/username/go (según el libro) en lugar de /Users/username/go


Está utilizando ir a instalar en un directorio fuera de la carpeta GOPATH. Establezca su variable de entorno GOBIN o mueva la carpeta src dentro de GOPATH.

GOPATH/ bin/ src/ go-statsd-client/

Más información: GO BUILD Código fuente , línea 296


Estoy en Windows, y lo obtuve dando el comando go help gopath a cmd, y leo el texto en negrita en las instrucciones,

es decir, si el código que desea instalar está en ..BaseDir.../SomeProject/src/basic/set , el GOPATH no debería ser la misma ubicación que el código, debería ser solo Base Project DIR: ..BaseDir.../SomeProject .

La variable de entorno GOPATH enumera lugares para buscar el código Go. En Unix, el valor es una cadena separada por dos puntos. En Windows, el valor es una cadena separada por punto y coma. En el Plan 9, el valor es una lista.

Si la variable de entorno no está configurada, GOPATH adopta de manera predeterminada un subdirectorio llamado "ir" en el directorio de inicio del usuario ($ HOME / ir a Unix,% PERFIL DE USUARIO% ir a Windows), a menos que ese directorio tenga una distribución de Go. Ejecute "go env GOPATH" para ver el GOPATH actual.

Consulte https://golang.org/wiki/SettingGOPATH para establecer un GOPATH personalizado.

Cada directorio enumerado en GOPATH debe tener una estructura prescrita:

El directorio src contiene el código fuente. La ruta debajo de src determina la ruta de importación o el nombre del ejecutable.

El directorio pkg contiene los objetos del paquete instalados. Al igual que en el árbol Ir, cada par de sistema operativo y arquitectura de destino tiene su propio subdirectorio de paquete (pkg / GOOS_GOARCH).

Si DIR es un directorio listado en GOPATH, un paquete con código fuente en DIR / src / foo / bar se puede importar como "foo / bar" y tiene su formulario compilado instalado en "DIR / pkg / GOOS_GOARCH / foo / bar.a ".

El directorio bin contiene comandos compilados. Cada comando recibe el nombre de su directorio de origen, pero solo el elemento final, no toda la ruta. Es decir, el comando con origen en DIR / src / foo / quux se instala en DIR / bin / quux, no en DIR / bin / foo / quux. El prefijo "foo /" se elimina para que pueda agregar DIR / bin a su RUTA para obtener los comandos instalados. Si se establece la variable de entorno GOBIN, los comandos se instalan en el directorio que nombra en lugar de DIR / bin. GOBIN debe ser un camino absoluto.

Aquí hay un diseño de directorio de ejemplo:

GOPATH=/home/user/go /home/user/go/ src/ foo/ bar/ (go code in package bar) x.go quux/ (go code in package main) y.go bin/ quux (installed command) pkg/ linux_amd64/ foo/ bar.a (installed package object)

..........

si GOPATH se ha establecido en el DIR del proyecto base y todavía tiene este problema, en Windows puede intentar establecer GOBIN como Base Project DIR/bin o %GOPATH%/bin .


Necesita configurar GOPATH y GOBIN. Asegúrese de haber hecho lo siguiente (reemplace ~ / go con su GOPAH preferido y luego cambie GOBIN). Esto se prueba en Ubuntu 16.04 LTS.

exportar GOPATH = ~ / go

mkdir ~ / go / bin

exportar GOBIN = $ GOPATH / bin

La respuesta seleccionada no resolvió el problema para mí.


Para cualquier usuario de OS X y para mí en el futuro, también debe configurar GOBIN para evitar este mensaje confuso durante la instalación y go get

mkdir bin export GOBIN=$GOPATH/bin


Por lo que vale, aquí está mi .bash_profile, que funciona bien para mí en un Mac con Atom, después de instalar ir con Homebrew:

export GOROOT=`go env GOROOT` export GOPATH=/Users/yy/Projects/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOBIN


Querrá tener 3 directorios dentro del directorio elegido de GOPATH.

GOPATH /bin /src /someProgram program.go /someLibrary library.go /pkg

A continuación, ejecutará go install desde adentro, ya sea algún programa (que coloca un archivo ejecutable en el contenedor) o alguna biblioteca (que coloca una biblioteca en paquete).


Tuve este problema en Windows.

Mi problema era que mi variable de entorno %GOPATH% estaba configurada para

C:/Users/john/src/goworkspace

en lugar de

C:/Users/john/src/goworkspace/

Al agregar la barra al final desaparecida al final, se solucionó por mí.