Prerequisites for compiling Feel++ on Linux

Difficulty: difficulty average average!

We now turn to the compilation and installation of the Feel++ dependencies on Linux. Feel++ is automatically tested on Ubuntu (16.04,18.04).

Feel++ is tested from time to time on other Linux distribution

  • Debian (stable,testing,unstable)

  • Redhat and Fedora

1. Ubuntu

1.1. Ubuntu 18.04 LTS

Here is the suggested installation of the Feel++ dependencies on Ubuntu LTS 18.04 (Bionic Beaver)

$ apt-get -y --force-yes install \
    build-essential dh-make debuild pbuilder debootstrap devscripts \
    emacs25 emacs vim nano \
    wget bison sudo \
    doxygen \
    cmake emacs25 flex  git gmsh  ipython libann-dev libbz2-dev libcgal-dev libcln-dev   \
    libcppunit-dev libeigen3-dev libglpk-dev libgmsh-dev\
    libhdf5-openmpi-dev libhwloc-dev liblapack-dev libmpfr-dev\
    libopenblas-dev libopenmpi-dev libopenturns-dev libpcre3-dev\
    libpetsc3.7.7-dev libproj-dev libslepc3.7.4-dev libtool\
    libvtk6-dev openmpi-bin paraview pkg-config python-dev\
    python-h5py python-numpy python-ply python-six\
    python-urllib3 python-vtk6 \
    screen sudo tmux wget xauth xterm \
    libopenturns-dev python-openturns openturns-validation openturns-examples r-other-rot\
    mongodb-server mongodb-clients libmongoc-dev libbson-dev \
    libsundials-serial-dev

1.2. Ubuntu 16.04 LTS

Here is the suggested installation of the Feel++ dependencies on Ubuntu LTS 16.04

$ sudo apt-get install autoconf automake bash-completion bison\
 clang++-3.8 clang-3.8 cmake emacs24 flex g++-6 gcc-6 git gmsh\
  ipython libann-dev libbz2-dev libcgal-dev libcln-dev \
  libcppunit-dev libeigen3-dev libglpk-dev libgmsh-dev \
  libhdf5-openmpi-dev libhwloc-dev liblapack-dev libmpfr-dev\
   libopenblas-dev libopenmpi-dev libopenturns-dev libpcre3-dev \
   libpetsc3.6.2-dev libproj-dev libslepc3.6.1-dev libtool \
   libvtk6-dev openmpi-bin paraview pkg-config python-dev \
   python-h5py python-numpy python-ply python-six \
   python-urllib3 python-vtk6 screen sudo tmux wget xauth xterm
We are unfortunately stung by the ABI change in GCC 6 when using clang. You need to recompile the Boost C++ libraries to be able to use clang, see the section in the Annexes on Compiling Boost.

2. Debian

2.1. Debian Sid and Testing

At the time of writing there is little difference between Sid and Testing, here is the recommend dependencies installation command line:

$ apt-get -y install \
    autoconf automake bash-completion bison cmake emacs24 \
    flex git gmsh ipython libann-dev libboost-all-dev \
    libbz2-dev libcgal-dev libcln-dev libcppunit-dev \
    libeigen3-dev libglpk-dev libgmsh-dev \
    libhdf5-openmpi-dev libhwloc-dev liblapack-dev \
    libmpfr-dev libopenblas-dev libopenmpi-dev \
    libopenturns-dev libpcre3-dev libtool libvtk6-dev \
    openmpi-bin paraview petsc-dev pkg-config python-dev \
    python-h5py python-numpy python-ply python-six \
    python-urllib3 python-vtk6 screen slepc-dev sudo \
    tmux wget xauth xterm zsh

2.2. Older distributions

Unfortunately the older distributions have the ABI GCC issue with clang, e.g. Debian/jessie, or they are too old to support a simple installation procedure.