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.
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}
gvm pkgset create influxdb
gvm pkgset use influxdb
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
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