Skip to content

Instantly share code, notes, and snippets.

@Bigomby
Last active October 19, 2016 08:00
Show Gist options
  • Save Bigomby/a3deafcca1b8e06c7eaeea4e7cd10995 to your computer and use it in GitHub Desktop.
Save Bigomby/a3deafcca1b8e06c7eaeea4e7cd10995 to your computer and use it in GitHub Desktop.

Guía de instalación de aplicaciones Go para redborder

A continuación se detalla cómo se construyen e instalan las aplicaciones de redborder escritas en Go. Son las siguientes:

Aplicación Estado Cobertura Documentación Commit en master

k2http

Build Status

k2http?status

[code fork] f08a5be [tags] 1.1.4

m2http

Build Status

m2http?status

[code fork] 7494f6e [tags] 0.1.1

rb-malware-agent

Build Status

badge

rb malware agent?status

[code fork] f0e4f7a [tags] 1.3.1

rbforwarder [1]

Build Status

badge

rbforwarder?status

[code fork] b6a325b [tags] 0.5.0

rb-register

Build Status

badge

rb register?status

[code fork] 61a6d4f [tags] 1.1.2

Requisitos

GOPATH

Lo primero es tener instalada una versión de Go mayor o igual a 1.6.0, las anteriores pueden no funcionar correctamente. Para instalar Go puede usarse gvm (Go version manager).

Una vez instalado Go el siguiente paso es configurar la variable de entorno GOPATH para que apunte al directorio donde deben situarse las aplicaciones hechas en Go, por ejemplo /usr/local/go o $HOME/gopath. Es importante que todas las aplicaciones se encuentren dentro de este directorio, por ejemplo $GOPATH/src/github.com/redBorder/k2http.

Note
También puede ser interesante añadir el directorio $GOPATH/bin al PATH.

A continuación se muestra un ejemplo de estructura del GOPATH:

.
├── bin                             	// Binaries
│   ├── k2http
│   ├── m2http
│   └── rb-register
|
├── pkg                            		// Compiled libraries
│   └── linux_amd64
|
└── src 								// Source code
	|
    └── github.com                 		// Namespace
    	|
        └── redBorder              		// Namespace
        	|
            ├── k2http              	// Package
            │   ├── main.go				// Source file
            |	...
            |
            ├── m2http              	// Package
            │   ├── main.go				// Source file
            |   ...
            |
            ├── rbforwarder				// Package
            │   ├── components      	// Sub package
            │   │   ├── batch			// Sub package
            │   │   	├──	main.go		// Source file
            │   │   	|...
            │   │   ...
            |   ...
            |
            ├── rb-malware-agent    	// Package
            |   ├── main.go				// Source file
            |
            └── rb-register         	// Package
                ├── main.go				// Source file
                ...

Glide

El otro requisito es tener instalado glide, un gestor de dependencias para Go como lo es Pip para Python, Bundler para Ruby, etc. Este programa nos permite fijar las versiones de las dependencias, ya que por defecto la herramienta de compilaión de Go resolvería siempre las dependecias a la rama master del repositorio, lo cual puede ser peligroso.

Instalar glide:
curl https://glide.sh/get | sh
Note
Otra opción para instalar glide sería:
go get github.com/Masterminds/glide
Warning

Si aparece el siguiente error es posible que glide se encuentre instalado pero no esté en el PATH.

Makefile:42: *** glide is not installed. Install it with "curl https://glide.sh/get | sh".  Alto.

Compilando e instalando la aplicación

  1. Clonar el repositorio y entrar en él

    git clone <REPO URL> && cd <REPO NAME>
  2. Instalar dependencias y compilar

    make
    • Sólamente instalar dependencias

      make get
    • Sólamente compilar

      make build
  3. Instalar el programa

    prefix=/opt/rb make install

1. "El paquete rbforwarder es una dependencia que no hay que instalar, se descarga automáticamente por los programas que dependen de él"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment