variable the run instalar how gopath como go

the - ¿Alguien puede explicar por qué GOPATH es conveniente y cómo se debe usar en general?



ubuntu gopath (2)

El objetivo de GOPATH es centralizar todos los paquetes en un espacio de trabajo común. No es realmente un concepto nuevo en sí mismo (piense en el classpath de Java, por ejemplo), pero use Go de una manera drásticamente simple al no respaldar la versión de paquetes.

El programador Go no tiene la intención de configurar GOPATH manualmente al ingresar una nueva carpeta de proyecto. Se supone que cada carpeta de proyecto es un paquete en sí misma y reside en GOPATH largo de otros paquetes, por lo que GOPATH debe establecerse solo una vez. Los tutoriales comienzan configurando GOPATH para aislar el espacio de trabajo del tutorial de cualquier otro.

GOROOT está configurado para proporcionar los paquetes estándar al programador Go, no necesita hacer nada con él. Para decirlo brevemente, hay una sola regla para GOROOT : nunca, nunca, GOROOT . No instale nada en él, no modifique los paquetes estándar, etc.

No conozco una herramienta para detectar proyectos en el directorio actual, pero no debería ser muy difícil de crear.

Cómo manejas diferentes proyectos depende de ti. El camino para hacerlo es poner cada proyecto como un paquete en el $GOPATH/src y hacer todo desde allí. Como realmente no me gusta, GOPATH mi GOPATH como $HOME/.go . Luego coloco cada proyecto en un directorio dedicado en otro lugar (en cualquier lugar de mi computadora) y enlace el directorio del proyecto en mi directorio $GOPATH/src . Entonces puedo usar cada comando compilar como nada, usar el proyecto como paquete para otro, etc.

Soy nuevo en el lenguaje de programación Go y cada tutorial comienza configurando GOPATH en la carpeta del proyecto actual.

¿Me estoy perdiendo de algo? ¿Se supone que el programador debe configurar GOPATH de forma manual cuando grabe en su nueva carpeta Go project? He leído varias entradas de preguntas frecuentes sobre GOPATH, pero todavía no podía entenderlo.

¿Y por qué existe GOROOT entonces? ¿Cuál es su propósito?

¿Hay alguna herramienta automática que detecta si el directorio actual es la carpeta raíz del proyecto Go (por ejemplo, mediante algún archivo oculto) y cambia GOPATH a este directorio automáticamente?

Gracias, cualquier consejo realmente solicitado

PD. Por ejemplo, desarrollo proyectos Go completamente desconectados A, B y C, ¿deberían vivir en un único entorno de "espacio de trabajo"? Supongo que no, ¿pero qué debería hacer con GOPATH y GOROOT entonces?


GOPATH le permite recopilar el código fuente de dependencia y los binarios compilados resultantes en un solo lugar. Esto parece una idea realmente atractiva. Sin embargo, me encontré trabajando en varios proyectos Go totalmente independientes y un enfoque alternativo me fue más útil.

Esta es una estrategia similar pero diferente a los symlnks de Elwinar. Comienzo un nuevo proyecto en una carpeta vacía y creo src . Y coloco en la carpeta este script de shell llamado env.sh:

if [ `type -p go` = "" ]; then export PATH=$PATH:/usr/local/go/bin fi export GOPATH=$PWD export PATH=$PATH:$PWD/bin

Cada vez que empiezo a trabajar, uso

. env.sh

Tenga en cuenta el punto y el espacio, son importantes.

Ahora, todo lo que hago en este proyecto está localizado dentro de esta carpeta. Posiblemente no sea la estrategia más utilizada, pero funciona bien para mí.

Y otra cosa: si sus dependencias hacen uso de variables de entorno para probar, etc., puede ponerlos en env.sh también. Por ejemplo, Gorp tiene

export GORP_TEST_DSN=test/testuser/TestPasswd9 export GO_TEST_DSN=testuser:TestPasswd9@/test