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 |
---|---|---|---|---|
|
||||
|
||||
|
||||
rbforwarder [1] |
|
|||
|
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 ...
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.
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 Makefile:42: *** glide is not installed. Install it with "curl https://glide.sh/get | sh". Alto. |
-
Clonar el repositorio y entrar en él
git clone <REPO URL> && cd <REPO NAME>
-
Instalar dependencias y compilar
make
-
Sólamente instalar dependencias
make get
-
Sólamente compilar
make build
-
-
Instalar el programa
prefix=/opt/rb make install