ESO Pipelines and EsoReflex Software Prerequisites for Source-based Installations (+Homebrew on Linux)

Software prerequisistes for source-based installation

This page provides information about the required software needed to install the ESO pipelines and EsoReflex from source. Note that if you have a Fedora Linux, Scientific Linux or macOS system it is strongly recommended to perform a binary installation as explained in RPM installation and MacPorts installation.

Note that if you are using scripts install_esoreflex or install_pipelinekit you are basically using source-based installations.

Software prerequisites for pipeline source installations

A number of minimum installed software needs to be installed before pipeline installation. It is strongly recommended to get these packages from the platform package managers (see below). Otherwise this is the list of software that needs to be installed:

  • POSIX (Unix-like) operating system. The following standard Unix command line programs should be available: make, awk, tr, cat, sed, grep, mkdir, rm, cksum, basename, touch, tar.
  • A C++11 and C99 compiler. It is recommended to use the GNU compiler (version 4.8 or later), but clang has also been tested. However, for compiling the UVES pipeline only gcc shall be used!
  • gzip data compression program
  • bzip2 data compression program
  • perl interpreter
  • libcurl The development packages of the multiprotocol file transfer library
  • pkg-config utility

Using distribution package managers

You must have sudo/root access to install the packages through the yum package manager. Contact your system administrator for that. Here we assume that sudo access has been properly configured for you in the system. Note that you might be prompted with your password.

  • Fedora 33 or later official repositories. Execute the following commands in a terminal:
    sudo dnf install gcc-c++ zlib-devel libcurl-devel make gzip bzip2 tar perl gawk sed grep coreutils pkgconfig curl
  • Red Hat EL, CentOS, Scientific Linux 7.x or later official repositories. Execute the following commands in a terminal:
    sudo yum install gcc-c++ zlib-devel libcurl-devel make gzip bzip2 tar perl gawk sed grep coreutils pkgconfig curl
  • Red Hat EL, CentOS, Rocky Linux, Alma Linux 8.x official repositories. Execute the following commands in a terminal:
    sudo dnf install gcc-c++ zlib-devel libcurl-devel make gzip bzip2 tar perl gawk sed grep coreutils pkgconfig curl
  • Ubuntu 18.04 or later and Debian 10 or later official repositories. Execute in a terminal the following commands (you might be prompted for your password):
    sudo apt install g++ zlib1g-dev libcurl4-openssl-dev make gzip bzip2 tar perl gawk sed grep coreutils pkg-config curl
  • macOS MacPorts. If you have MacPorts installed, issue the following command:
    sudo port install pkgconfig autoconf automake libtool bzip2 curl
    Take into account that Xcode needs also to be installed (a prerequisiste also for MacPorts itself).

Software prerequisites for KMOS, XSHOOTER, FORS, and MOLECFIT pipeline source installations

KMOS, XSHOOTER, FORS, and MOLECFIT need additional software. It is strongly recommended to get these packages from the platform package managers (see below). Otherwise this is the list of software that needs to be installed:

  • Fortran compiler.

Using distribution package managers

You must have sudo/root access to install the packages through the yum package manager. Contact your system administrator for that. Here we assume that sudo access has been properly configured for you in the system. Note that you might be prompted with your password.

  • Fedora 33 or later official repositories. Execute the following commands in a terminal:
    sudo dnf install gcc-gfortran
  • Red Hat EL, CentOS, Scientific Linux 7.x official repositories. Execute the following commands in a terminal:
    sudo yum install gcc-gfortran
  • Red Hat EL, CentOS, Rocky Linux, Alma Linux 8.x official repositories. Execute the following commands in a terminal:
    sudo dnf install gcc-gfortran
  • Ubuntu 18.04 or later and Debian 10 or later official repositories. Execute in a terminal the following commands (you might be prompted for your password):
    sudo apt install gfortran
  • macOS MacPorts. If you have MacPorts installed, issue the following command:
    sudo port install gcc8 +gfortran
    Note that if you have other gcc version already installed, for instance gcc 6, you should install the fortran variant for that compiler, i. e.,
    gcc6 +gfortran

Software prerequisites for EsoReflex source installations

In addition to the pre-requisites listed above additional software is needed to execute Reflex and pipeline Reflex workflows. It is recommended to get these packages from the platform package managers (see below). Otherwise this is the list of software that needs to be installed:

  • Java Runtime Environment (JRE) 1.8 or 11. Please note that only LTS releases are supported but currenty Reflex is not compatible with Java 17.
  • Python (version 3.1 or later)
  • astropy (version 3.0 or later) (Note: pyfits has been deprecated)
  • wxPython (version 4.0 or later)
  • matplotlib (version 2.0 or later)
  • numpy (version 1.7.0 or later)
  • fv (version 5.3 or later)
  • XQuartz (version 2.7.7 or later, only applicable if running on Mac OS)

Note that EsoReflex can still be executed with a python 2.7 stack but is not a recommended configuration and is not actively supported.

Note that you should make sure all the prerequisite binaries are available under one of the paths indicated by the following command:

getconf PATH

If this is not the case, then you will need to add the appropriate paths to the esoreflex.path parameter in the installed esoreflex.rc configuration file, after EsoReflex is installed.

EsoReflex 2.9.0 and newer supports Python based recipes as long as EsoRex is compiled with one of the following prerequisites:

  • libffi (optional, version 3.0 or later)
  • libffcall (optional, version 2.0 or later)

Note that these are not necessary if running workflows that do not rely on Python based recipes. Therefore, at the moment this is only applicable to contributed workflows, e.g. for MUSE.

Using distribution package managers

You must have sudo/root access to install the packages through the yum package manager. Contact your system administrator for that. Here we assume that sudo access has been properly configured for you in the system. Note that you might be prompted with your password. Also, in Linux distributions, this will install java 11 and make it the default.

  • Fedora 33 or later official repositories. Execute the following commands in a terminal:
    sudo dnf install python3-matplotlib python3-matplotlib-wx python3-wxpython4 python3-astropy python3-numpy java-11-openjdk python3 libffi-devel
    sudo update-alternatives --set java /usr/lib/jvm/java-11-openjdk-11*/bin/java

    You will still have to install the fv binary manually. Follow the instructions here. If possible, install fv so that it is accessible through /usr/bin.

  • Red Hat EL, CentOS, Scientific Linux 7.x official repositories. Execute the following commands in a terminal:
    sudo yum install yum-utils ca-certificates yum-conf-repos
    sudo yum install epel-release
    sudo yum install wxPython python-matplotlib python-astropy numpy java-latest-openjdk python libffi-devel
    sudo yum install ftp://ftp.eso.org/pub/dfs/pipelines/repositories/stable/centos/7/x86_64/python-matplotlib-wx/python-matplotlib-wx-1.2.0-1.el7.centos.x86_64.rpm
    Note that the python-matplotlib-wx package is not available in the official repositories but ESO provides it in its repositories.

    Optionally you will have to install the fv binary manually if you want to visualize FITS files with that FITS viewer in Reflex. Follow the instructions here. If possible, install fv so that it is accessible through /usr/bin.

  • Red Hat EL, CentOS, Rocky Linux, Alma Linux 8.x official repositories. Execute the following commands in a terminal:
    sudo dnf install epel-release
    sudo dnf install 'dnf-command(config-manager)'
    sudo dnf config-manager --enable powertools
    sudo dnf install python3-matplotlib python3-matplotlib-wx python3-wxpython4 python3-astropy python3-numpy java-11-openjdk python3 libffi-devel
    sudo update-alternatives --set java /usr/lib/jvm/java-11-openjdk-11*/bin/java

    You will still have to install the fv binary manually. Follow the instructions here. If possible, install fv so that it is accessible through /usr/bin.

  • Ubuntu 18.04 or later and Debian 10 or later official repositories. Execute in a terminal the following commands (you might be prompted for your password):
    sudo apt install python3-matplotlib python3-wxgtk4.0 python3-astropy python3-numpy openjdk-11-jre libffi-dev
    sudo update-alternatives --set java /usr/lib/jvm/java-11-openjdk-amd64/bin/java

    You will still have to install the fv binary manually. Follow the instructions here. If possible, install fv so that it is accessible through /usr/bin.

  • macOS MacPorts. If you have MacPorts installed, issue the following command:
    sudo port install python311 py311-importlib-resources py311-matplotlib py311-wxpython-4.0 py311-numpy py311-astropy xorg-server libffi
    sudo port select --set python3 python39
    Please make sure that the version of python used is the one from MacPorts by adding /opt/local/bin first in your path. This depends on your shell. For bash:
    export PATH=/opt/local/bin:$PATH
    In some shells you might have to do a rehash:
    rehash

    If using the libffi option, you will have to make sure that EsoRex is able to find, compile and link against libffi.

    You would have to install a Java 8 virtual machine separately as well.

    You will still have to install the fv binary manually. Follow the instructions here and install in the default location (Applications folder). Remember you will need to modify the esoreflex.rc configuration file once EsoReflex is installed to add the additional path /Applications/fv.app/Contents/MacOS to the esoreflex.path configuration parameter.

    To enable Python based recipes, EsoRex needs to be able to find libffi. Unfortunately, the version in MacPorts is not automatically visible to the EsoRex compilation if using the install_esoreflex script. The easiest approach to solving this is to run commands similar to the following (Note that you may need to adjust the version numbers in the library file name and paths):

    sudo mkdir -p /usr/local/lib /usr/local/include
    sudo ln /opt/local/lib/libffi.6.dylib /usr/local/lib/libffi.6.dylib
    sudo ln /opt/local/lib/libffi-3.2.1/include/ffi.h /usr/local/include/ffi.h
    sudo ln /opt/local/lib/libffi-3.2.1/include/ffitarget.h /usr/local/include/ffitarget.h

Software prerequisites for Gasgano source installations

Note that Gasgano installation is disabled when using the install_esoreflex. If you are using the install_pipelinekit script then it is enable by default, but can be disabled with -ignore-gasgano.

Note that if you are installing JDK in macOS, you should make it known to the installation procedure with this extra command:

export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/

for OS X 10.7 Lion and OS X 10.8 Mountain Lion.

Using distribution package managers

You must have sudo/root access to install the packages through the yum package manager. Contact your system administrator for that. Here we assume that sudo access has been properly configured for you in the system. Note that you might be prompted with your password.

  • Fedora 33 or later official repositories. Execute the following commands in a terminal:
    sudo dnf install java-latest-openjdk-devel
  • Ubuntu 18.04 or later and Debian 10 or later official repositories. Execute in a terminal the following commands (you might be prompted for your password):
    sudo apt install default-jdk

Installation procedure

If you are not using macports for macOS or RPMs for Fedora, CentOS, Scientific Linux, then the install_esoreflex script installation method is the recommented way to install pipelines with Reflex support by following these instructions:

  1. Check that you have all the software prerequisites for pipeline source installation as well as the software prerequisites for EsoReflex
  2. Download install_esoreflex
  3. Make it executable:
    chmod u+x install_esoreflex
  4. Execute the installation script. This will install EsoReflex, the supported pipelines and demo data. The script will ask for an installation directory (install_dir) as well as the download and data directories.
    ./install_esoreflex
    If the software prerequisites are not met the script will fail, or in the case of optional packages (python modules) it will prompt whether you want to continue. If this happens, go and review again the Reflex software prerequisites.
  5. If any of the prerequisite binaries (indicated in Reflex software prerequisites ) do not exist in one of the paths indicated by the command,
    getconf PATH
    then you need to update the EsoReflex configuration. Open the installed install_dir/etc/esoreflex.rc file (where install_dir is the previously selected installation directory) and add the appropriate paths as a colon separated list to the esoreflex.path parameter.
  6. Execute EsoReflex:
    install_dir/bin/esoreflex

This script will allow to install the pipelines with available workflows as well as EsoReflex itself. It requires an Internet connection, since it retrieves all the packages directly from the net. Please read section Software prerequisites to make sure that you have the needed software before running the script. The script will detect if there is any missing software, but it won't attempt to install it.

The script also has limited support for reinstallation of software if new versions of the pipelines or EsoReflex are available.

Manual Installation of all the software

This installation procedure installs the pipeline and the workflow first, and then EsoReflex is used on top of an existing pipeline installation. It is a more advanced setup and therefore it is recommended only for advanced users.

  1. Download and make a regular installation of the pipeline. Note that if you already have an installed version which includes the workflow, it is also possible to use it.
  2. Make sure that EsoRex can access the uves recipes using the following command:
    esorex --recipes
  3. Download and install EsoReflex
  4. Start EsoReflex and open the workflow located in the installation directory of the pipeline:
    installation_dir/share/reflex/workflows/pipeline-x.x.x
  5. Demo data can be found in this table under column "Demo Data Sets".
  6. If you have run EsoReflex in the same machine and account where another EsoReflex installation was previously made, you might have to remove directories ~/KeplerData and ~/.kepler to clean the cache.

Bug Reports

If you experience an unexpected behaviour of any component of EsoReflex or the pipeline recipes package, please, first refer to the list of known problems and limitations in the workflow tutorial, the pipeline manual, or the EsoReflex user manual, in this order.

For any other issues or requests, please contact the ESO User Support Department mentioning EsoReflex in the subject, describing:        

  • the EsoReflex and pipeline version, and the version of other components (e.g., Gasgano, EsoRex, ...) you are using
  • the version of your OS and C compiler
  • the version of python and required python modules
  • the exact sequence of actions that were performed before the problem occurred
  • what were precisely the symptoms and the possible error message(s)
  • whether the problem is repeatable