how - govendor
¿Qué hace go install? (1)
Los documentos no dicen nada acerca de lo que la build
vs install
hace
Mi expectativa era que es como make install
; es decir, toma las cosas compiladas y las coloca en su ubicación final ( /usr/local/bin/my_new_toy
o lo que sea) pero parece que pone cosas en GOROOT/bin
¿Puedo decirle que vaya a hacer una make install
- es decir, poner cosas en otro lugar? ¿O simplemente escribo un makefile (por favor dígame no)?
Si desea que los archivos binarios vayan a una ubicación específica, puede usar la variable de entorno GOBIN
:
El directorio bin / contiene comandos compilados. Cada comando se nombra por su directorio de origen, pero solo el elemento final, no la ruta completa. Es decir, el comando con fuente en DIR / src / foo / quux se instala en DIR / bin / quux, no en DIR / bin / foo / quux. El foo / se elimina para que pueda agregar DIR / bin a su PATH para obtener los comandos instalados. Si la variable de entorno GOBIN está establecida, los comandos se instalan en el directorio que nombra en lugar de DIR / bin.
Fuente: http://golang.org/cmd/go/#hdr-GOPATH_environment_variable
GOBIN=/usr/local/bin/ go install
Si desea el directorio bin/
proyecto por proyecto, simplemente puede agregar la ruta de su proyecto a GOPATH
, sin embargo, debe tener su código en $project-path/src/
y go install
colocará todos los archivos binarios en $project-path/bin
.
export GOPATH=/dir1:/dir2:/dir3
Si no se establece GOBIN, los binarios de / dir1 / src terminan en / dir1 / bin, los binarios de / dir2 / src terminan en / dir2 / bin, y así sucesivamente (y los binarios de $ GOROOT / src terminan en $ GOROOT /compartimiento).
Fuente: https://groups.google.com/forum/#!topic/golang-nuts/-mN8R_Fx-7M
Y se me cruzó por completo, pero siempre puedes usar (gracias JimB):
go build -o /path/binary-name