This is the installation manual for LIBPF™ (LIBrary for Process Flowsheeting) development on Linux operating systems, for the model developer or for the LIBPF core developer who want to prepare a Linux machine for LIBPF development.

LIBPF development is preferably done on Debian 8.0 Jessie (the stable version at the time of writing).

It should be possible to work also on a different Debian release or another up-to-date Linux distribution. For some of these we provide step-by-step instructions, but it should be easy to adapt to other distributions / releases.

Before starting the procedure below, follow the instructions to setup a Linux machine to run LIBPF so that you have the runtime prerequisites, the database and the activated license.

Debian

Jessie 8

Install the mandatory prerequisites:

sudo apt-get install debhelper libcurl4-openssl-dev xz-utils tar git doxygen libboost-dev xsltproc libloki-dev libpq-dev libsqlite3-dev libboost1.55-tools-dev 
sudo apt-get install libgmm++-dev libiodbc2-dev libsundials-serial-dev libmxml-dev libsilo-dev libsuitesparse-dev libboost-test-dev
sudo apt-get install make lintian chrpath libjsoncpp-dev

The optional ones are:

apt-get install lcov valgrind graphviz libboost-doc qt5-doc gdb

Now install the C++ compiler, either gcc:

apt-get install g++

or clang:

apt-get install clang

Python / RESTful API

For building:

sudo apt-get install swig python-dev openjdk-7-jdk libboost-regex-dev libboost-system-dev libboost-thread-dev

and for running:

sudo apt-get install python-bottle python-jsonschema python-pymongo mongodb python-cherrypy3

Qt

For UI development you'll need qt5:

sudo apt-get install qt5-default libqt5xml5 libqt5svg5-dev libqt5xmlpatterns5-dev libqt5sql5-psql qttools5-dev-tools

Wheezy (7)

apt-get install debhelper libcurl4-openssl-dev xz-utils tar git doxygen libboost-dev xsltproc libloki-dev libpq-dev libsqlite3-dev 
apt-get install libiodbc2-dev libsundials-serial-dev libmxml-dev libsilo-dev libsuitesparse-dev libboost-test-dev libqt4-dev libssl-dev 
apt-get install libgmm++-dev lintian chrpath libjsoncpp-dev

Squeeze (6)

You will need to build libjsoncpp-dev since that is not available for Squeeze.

As compiler, only g++ is supported.

apt-get install debhelper libcurl4-openssl-dev xz-utils tar git doxygen g++ libboost-dev xsltproc libloki-dev libpq-dev libsqlite3-dev libgmm++-dev libiodbc2-dev libsundials-serial-dev libmxml-dev libsuitesparse-dev boost-build libboost-test-dev lintian chrpath

Optional:

apt-get install lcov valgrind graphviz libboost-doc qt4-doc-html gdb

Setup the repositories to point to wheezy editing the file /etc/apt/sources.list and replacing squeeze with wheezy in the lines starting with deb and deb-src:

deb http://mi.mirror.garr.it/mirrors/debian/ wheezy main
deb-src http://mi.mirror.garr.it/mirrors/debian/ wheezy main

Now install this additional package:

apt-get update
apt-get install libsilo-dev

You might want to undo now the previous changes to /etc/apt/sources.list and launch again apt-get update after installing this additional package.

Ubuntu

Trusty Tahr (14.04)

See the instructions for Debian Jessie (8).