Skip to content

Instantly share code, notes, and snippets.

@Sineos
Last active January 29, 2017 09:08
Show Gist options
  • Save Sineos/5bb6674b6df071b60620bd477d657080 to your computer and use it in GitHub Desktop.
Save Sineos/5bb6674b6df071b60620bd477d657080 to your computer and use it in GitHub Desktop.
How to build influxdb with gvm

Introduction

Building influxdb with a dedicated package set can be tricky since go is quite bitchy about its path variables and will produce really strange error messages when these are not set properly. This short memo assumes gvm and the relevant go version are already installed.

Create folder structure for go:

This assumes we use a folder go in $HOME to manage all go projects in a dedicated package environment

mkdir -p $HOME/go/influxdb/{pkg,bin,src}

Create influxdb package set:

gvm pkgset create influxdb
gvm pkgset use influxdb

Modify pkgset environment:

Call

gvm pkgenv influxdb

and modify:

export GVM_ROOT; GVM_ROOT="/root/.gvm"
export gvm_go_name; gvm_go_name="go1.7.4"
export gvm_pkgset_name; gvm_pkgset_name="global"
export GOROOT; GOROOT="$GVM_ROOT/gos/go1.7.4"
export GOPATH; GOPATH="$GVM_ROOT/pkgsets/go1.7.4/global"
export GVM_OVERLAY_PREFIX; GVM_OVERLAY_PREFIX="${GVM_ROOT}/pkgsets/go1.7.4/global/overlay"
export PATH; PATH="${GVM_ROOT}/pkgsets/go1.7.4/global/bin:${GVM_ROOT}/gos/go1.7.4/bin:${GVM_OVERLAY_PREFIX}/bin:${GVM_ROOT}/bin:${PATH}"
export LD_LIBRARY_PATH; LD_LIBRARY_PATH="${GVM_OVERLAY_PREFIX}/lib:${LD_LIBRARY_PATH}"
export DYLD_LIBRARY_PATH; DYLD_LIBRARY_PATH="${GVM_OVERLAY_PREFIX}/lib:${DYLD_LIBRARY_PATH}"
export PKG_CONFIG_PATH; PKG_CONFIG_PATH="${GVM_OVERLAY_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}"
export gvm_pkgset_name="influxdb"

# Original setting
#export GOPATH; GOPATH="/root/.gvm/pkgsets/go1.7.4/influxdb:$GOPATH"
# Modified setting 
export GOPATH; GOPATH="/root/go/influxdb:/root/.gvm/pkgsets/go1.7.4/influxdb:$GOPATH"

# Original setting
#export PATH; PATH="/root/.gvm/pkgsets/go1.7.4/influxdb/bin:$PATH"
# Modified setting 
export PATH; PATH="/root/go/influxdb:/root/.gvm/pkgsets/go1.7.4/influxdb/bin:$PATH"

# Package Set-Specific Overrides
export GVM_OVERLAY_PREFIX; GVM_OVERLAY_PREFIX="${GVM_ROOT}/pkgsets/go1.7.4/influxdb/overlay"

export PATH; PATH="/root/.gvm/pkgsets/go1.7.4/influxdb/bin:${GVM_OVERLAY_PREFIX}/bin:${PATH}"
export LD_LIBRARY_PATH; LD_LIBRARY_PATH="${GVM_OVERLAY_PREFIX}/lib:${LD_LIBRARY_PATH}"
export DYLD_LIBRARY_PATH; DYLD_LIBRARY_PATH="${GVM_OVERLAY_PREFIX}/lib:${DYLD_LIBRARY_PATH}"
export PKG_CONFIG_PATH; PKG_CONFIG_PATH="${GVM_OVERLAY_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}"

Hint

  • If you hate vi as much as I do export EDITOR=nano to change the env editor to e.g. nano
  • Adapt $HOME and paths to the respective user that is used to build the packages
  • You might need to reload the env via gvm pkgset use influxdb

Build the package

Change to the build dir

cd /root/go/influxdb/src

Get gdm to manage influxdb's dependencies

go get github.com/sparrc/gdm

Get the influxdb src

go get github.com/influxdata/influxdb

Change dir to influxdb

cd github.com/influxdata/influxdb

Get dependencies

gdm restore

Build the package

./package.sh 1.2.1 -t deb -r 1

To build a debian package with version number 1.2.1 and release candidate 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment