Source Code

Entorno Go


Tiempo de lectura: 2 minutos

Sobre el entorno Go y las variables de entorno



Paquetes instalados

El comando go get instala los paquetes en el directorio definido por la variable de entorno %GOPATH%. En el caso que no esté definida, se utiliza la variable %HOME%/go.

Los ejecutables se ubican en el directorio %GOPATH%/bin o en %HOME%/go/bin. si no está definida la primera.

Adicionalmente están los directorios pkg, para los paquetes compilados, y src, donde debe ir todo el código fuente, aunque esto depende de la estructura del proyecto.

Ubicación del proyecto

Lo estándar sería poner el proyecto en esta ruta para que esté disponible para la herramienta go get:

$GOPATH/src/domain.com/username/project

Variables de entorno

El comando go env lista las variables de entorno que se están utilizando en el entorno de Go.

Modificar una variable

Las variables de entorno se pueden leer o modificar utilizando funciones predefinidas en el paquete os

    os.Setenv("VAR_1", "1")
    fmt.Println("VAR_1:", os.Getenv("VAR_1"))

Principales variables

hay una serie de variables de entorno que determinan cómo será el binario resultante de una compilación, por ejemplo, y que también configuran el entorno de desarrollo. las principales las podemos agrupar en varias categorías:

Compilador

GOARCH. Indica la arquitectura del sistema de destino para el cual se quiere compilar el código Go.

GOOS. La variable de entorno GOOS le dice al compilador Go en qué sistema operativo de destino desea que se ejecute el código.

GOROOT. La variable de entorno GOROOT señala el directorio raíz donde se encuentra la instalación de Go, no los archivos de proyecto. Este directorio contiene componentes esenciales como el compilador de Go, los paquetes de la biblioteca estándar y las herramientas.

GOMAXPROCS. Desempeña un papel crucial en la gestión de la concurrencia de Go. Determina la cantidad máxima de subprocesos del sistema operativo y, por lo tanto, potencialmente, núcleos de CPU, que pueden ejecutar código Go simultáneamente en un momento determinado.

Compilación C

Para ver la compilación en C revisa el post relacionado con las llamadas a C desde Go

CGO_ENABLED. La variable de entorno CGO_ENABLED actúa como un interruptor para Cgo, una potente característica de Go que permite interacciones entre Go y el código C. Tiene los valores 0, deshabilitado, o 1, habilitado.

CGO_CFLAGS. Permite ajustar el proceso de compilación del código C integrado con tu proyecto Go mediante Cgo. Te permite inyectar indicadores personalizados directamente en la invocación del compilador C, por ejemplo, las rutas de acceso a las bibliotrcas en C.

CGO_LDFLAGS. Proporciona una manera de influir en la etapa final de vinculación al usar Cgo para integrar código C en tus proyectos Go. Te permite pasar indicadores personalizados directamente al enlazador (linker). Por ejemplo, bibliotecas de C externas.

Colector de basura

GOCG. La variable de entorno GOGC permite ajustar el comportamiento de la recolección automática de basura de Go. Principalmente controla la frecuencia de los ciclos de recolección de basura. Los valores son: off, para deshabilitarlo, default para recuperar el comportamiento por defecto y un valor numérico que representa un porcentaje del crecimiento de la pila (heap) que indica cuándo se ejecuta el recolector.

Xavier es un desarrollador senior full stack y opera desde la ciudad mediterránea de Barcelona. Le encantan las tecnologías de software y está convencido que el desarrollo de software es un proceso colaborativo y abierto.
Y es un apasionado de la astronomía y de la fotografía. Lo puedes encontrar en:
Comparte este post