Installation on Linux

Debian systems

Packages are available for Debian 8 from the PNI/HDRI package repository hosted by desy. In order to install the packages this repository must be added to your installation.

As root execute the following commands

$ wget -q -O - http://repos.pni-hdri.de/debian_repo.pub.gpg | apt-key add -
$ cd /etc/apt/sources.list.d
$ wget http://repos.pni-hdri.de/jessie-pni-hdri.list

and update the package list with

$ apt-get update

Currently the following external filter packages are available for Debian 8

Package Description
hdf5-plugin-lz4 LZ4 compression filter (used for instance by the Eiger detector)

Installing a particular external filter package is rather straight forward by using

$ apt-get install hdf5-plugin-lz4

If this is the first external filter package you install you may recognize that there is an additional package being installed: hdf5-plugins-common. This package ensures that the HDF5_PLUGIN_PATH environment variable is set in your shell. For this purpose you may have to start a new terminal if you want to use software with this plugin on the command line.

Ubuntu systems

For Ubuntu systems packages are available for the last two LTS releases: 14.04 and 16.04. The packages are provided via the PNI PPA on launchpad. To add this PPA to your package sources open a terminal and execute

$ sudo add-apt-repository ppa:eugenwintersberger/pni
$ sudo apt-get update

The following external filter packages are currently available for Ubuntu (14.04 and 16.04)

Package Description
hdf5-plugin-lz4 LZ4 compression filter (used for instance by the Eiger detector)

The procedure to install a package with an external filter is the same as for Debian systems

$ apt-get install hdf5-plugin-lz4

Red Hat based systems

Attention

There are currently no prebuilt RPM packages available for Red Hat based distributions. Maybe we will do this in the future.

Install from sources

Warning

If you have never built software from sources at all, this section might be not for you. Ask someone with more experience to get the job done.

Obtain the sources from the HDF5 external filter GitHub site by cloning the current master branch of the repository.

$ git clone https://github.com/nexusformat/HDF5-External-Filter-Plugins.git hdf5-plugins

For Linux the autotools are required to build the code. The current structure of the source tree is a bit unconventional. The repository contains four subdirectories

$ ls hdf5-plugins
BLOSC  BZIP2  docs  LZ4

where BLOSC, BZIP2 and LZ4 contain the source code for filter plugins. Each of these directories can be considered a top-level source directory for the sources of the particular filter plugin.

For Linux the autotools are used to build the code. As an example we will build the LZ4 plugin here. Even with autotools I prefer out-of-place builds so the next step would be to create a build directory and run configure

$ mkdir lz4-plugin-build
$ cd lz4-plugin-build
$ ../hdf5-plugsin/LZ4/configure --prefix=/opt/hdf5-plugins

Here we want to install the plugin below /opt/hdf5/plugins. Building the code is faily straight forward

$ make
$ make install

Before we can use the plugin we have to set the environment variable HDF5_PLUGIN_PATH to point to the installation directory of the plugins.

$ export HDF5_PLUGIN_PATH=/opt/hdf5/plugins/lib

To make this persistens one may wants to add this line to ones .bashrc.