Building NSClient++

NSclient++ is fairly simple to build and setup. It requires python and cmake for the build process as well as a number of external libraries. This document is split between “Linux” and “Windows” since there is a substantial difference in how to build them. For people wanting a Apple osx version it can be built similrily to the Linux machines on that platform as well.

Linux

The dependencies are different on different Linux systems so we will start with a section on installing dependencies on various platforms.

Dependencies on Ubuntu

First we need to install a set of packages:

sudo apt-get install -y git
sudo apt-get install -y build-essential
sudo apt-get install -y cmake
sudo apt-get install -y python python-dev
sudo apt-get install -y libssl-dev
sudo apt-get install -y libboost-all-dev
sudo apt-get install -y protobuf-compiler python-protobuf libprotobuf-dev
sudo apt-get install -y python-sphinx
sudo apt-get install -y libcrypto++-dev libcrypto++
sudo apt-get install -y liblua5.1-0-dev
sudo apt-get install -y libgtest-dev

Getting the code from github

Next up we download the source code from github:

git clone --recursive https://github.com/mickem/nscp.git

Building NSClient++

First we create a folder in which we will build the code:

mkdir build
cd build

Then we run cmake to create the build files:

cmake ../nscp

Then we build the actual code:

make

Lastly we run the built-in test to make sure everything is working:

make test

Windows

Dependencies is a bit of a bother to manage on Windows since there is no general package mechanism for libraries. To help with the there is a script called fetch-deps.py which will help download and build all dependencies required.

Tools

All tools have to be installed manually by hand (fetchdeps only manages libraries):

  • CMake 2.6
  • Python 2.7 (Make sure the right python platform is in your path)
  • Visual Studio (I use 2012 and 2015)
  • WiX 3.9 (or later)
  • Perl 5.12 (required by openssl)
  • A git client (if you want to fetch the git sources)

Validate all tools are in your path:

cmake --version
python -V
perl -v
cl /?
Get the source code using git::
mkdir win32-build-folder cd win32-build-folder git clone –recursive https://github.com/mickem/nscp.git

Create a build folder:

mkdir build
cd build
mkdir <plattform>
cd <plattform>

Build all dependencies and required libraries (pick the right platform Win32 or x64):

<source path>nscp\build\python\fetchdeps.py --target <platform> --dyn --source <source path> --msver 2012

Validate that we have all dependencies:

cmake -D TARGET=dist -D SOURCE=nscp -P nscp\check_deps.cmake

Build NSClient++ (If you don’t know you your visual studio version name you can run cmake –help to list all available profiles):

cd dist
cmake -G "VISUAL STUDIO GNERATOR STRING" ../nscp
msbuild /p:Configuration=RelWithDebInfo NSCP.sln

Vagrant

I provide a number of vagrant profiles which will built NSClient++ as well:

git clone --recursive https://github.com/mickem/nscp.git
cd vagrant
cd precise32 # Replace this with precise64 or oracle-linux-6.4_64
vagrant up
vagrant provision
vagrant ssh
# Once your done playing...
vagrant destroy
comments powered by Disqus