EsoReflex Software Prerequisites and Installation Instructions

Release of EsoReflex based workflows for VLT pipelines

A number of VLT pipelines deliver workflows compatible with EsoReflex 2.9.1. You can browse the available pipelines here.

For the Fedora 26/27/28/29 64 bits platforms, we strongly recommend using our RPM repositories to install the pipeline software including workflows and EsoReflex. Instructions are given here.

For the Apple OS X 10.11 platform or newer, there is now also an option to install the pipeline software including workflows and EsoReflex using MacPorts. Instructions for this installation method are given here.

The rest of the instructions on this page are for installing from source code packages instead. Please note that the name of the command to launch EsoReflex from the terminal is now esoreflex. This used to be reflex in older EsoReflex distributions.

Software prerequisites installation

The VLT workflows and EsoReflex depend on a number of packages that must be installed, namely gcc, gzip, make, Java 8, python, python-astropy (pyfits on old platforms), wxPython, matplotlib, numpy, fv, X11 and libffi or libffcall. Additionally the Gravity pipeline needs yorick. Technically, libffi or libffcall are dependencies of EsoRex. But one of these must be installed to enable use of Python based recipes in EsoReflex. Currently only the MUSE contributed workflows make use of this feature. Below, we list three ways to install these dependencies.

  • Distribution package managers. This usually requires software installation rights.
    • Fedora 26 to 29 official repositories. It is very easy to install most of the dependencies using the official yum repositories. Using root access execute the following commands in a terminal:
      dnf upgrade
      dnf install python2-matplotlib python2-matplotlib-wx wxPython python-astropy numpy java-openjdk python2 gcc-c++ zlib-devel make gzip tar yorick yorick-optimpack yorick-yet libffi-devel
      If you also want to install Gasgano (not the default), then install the following additional package:
      dnf install java-1.8.0-openjdk-devel

      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 6.x or later official repositories. It is very easy to install most of the dependencies using the official yum repositories. Using root access execute the following commands in a terminal:
      yum upgrade
      yum install python-matplotlib wxPython pyfits numpy java-1.8.0-openjdk python gcc-c++ zlib-devel make gzip tar libffi-devel
      If the operating system is 64 bits:
      update-alternatives --set java /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java
      If it is 32 bits:
      update-alternatives --set java /usr/lib/jvm/jre-1.8.0-openjdk/bin/java

      The wxPython backend for Matplotlib is not available by default on the CentOS 7 platform. You will have to build this yourself if you plan to run a workflow that requires this feature. Please refer to the Matplotlib installation instructions for building with the wxPython backend enabled. Alternatively install from the RPM repositories instead.

      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 official repositories (version 15.10 or later) and Debian 8. It is very easy to install most of the dependencies using the official apt repositories. Just execute in a terminal the following commands (you might be prompted for your password):
      sudo apt-get update
      sudo apt-get upgrade
      sudo apt-get install python-matplotlib python-wxgtk3.0 python-astropy python-numpy default-jre pkg-config g++ zlib1g-dev make gzip tar yorick yorick-yeti yorick-optimpack libffi-dev
      If you also want to install Gasgano (not the default), then install the following additional package:
      apt-get install default-jdk

      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 14.04 or Debian 8 official repositories. It is very easy to install most of the dependencies using the official apt repositories. Just execute in a terminal the following commands (you might be prompted for your password):
      sudo apt-get update
      sudo apt-get upgrade
      sudo apt-get install python-matplotlib python-wxgtk2.8 python-astropy python-numpy openjdk-8-jre pkg-config g++ zlib1g-dev make gzip tar yorick yorick-yeti yorick-optimpack
      update-java-alternatives --jre --set java-1.8.0-openjdk-amd64

      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.

    • Mac OS X MacPorts. If you have MacPorts installed, issue the following commands to install the python modules and software needed to compile the pipelines:
      sudo port selfupdate
      sudo port upgrade outdated
      sudo port install py27-matplotlib py27-wxpython-2.8 py27-numpy py27-astropy pkgconfig autoconf automake libtool yorick yorick-yeti yorick-optimpack xorg-server libffi
      sudo port select --set python python27
      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

      You would have to install a compiler (Xcode) with gcc preferable for certain pipelines such as UVES and a Java 8 virtual machine separately as well.

      If you are building with Gasgano support (not the default), you have to install the Java development kit and 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.

      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
  • Scisoft 7.7 or greater.

    Scisoft is a collection of software that includes most of the prerequisites. It is officially supported only for Fedora 11/20/24. Consult the webpage for installation instructions.

    For Mac users there used to be an unofficial port of Scisoft, but it is no longer available. Please install the prerequisites with MacPorts or individually.

  • Individual package installation.

    If you still need to install the dependencies manually because your operating system distribution does not contain them, this is the list of packages to install:

    • GNU C++ and C compiler (version 4.4 or later)
    • gzip data compression program
    • GNU make utility
    • Java Runtime Environment (JRE) 1.8
    • Python (version 2.6.0 or later, but less than 3.x)
    • astropy (version 1.0 or later) (Note: pyfits has been deprecated)
    • wxPython (version 2.8.10.1 up to 2.9.5.0)
    • matplotlib (version 1.2 or later)
    • numpy (version 1.5.0 or later)
    • fv (version 5.3 or later)
    • (Only if you install Gravity pipeline) Yorick together with Yeti and Optimpack plugins.
    • (Only if you install Gravity pipeline) ERFA (version 1.2.0 or later)
    • (Only if Python based recipes for EsoReflex are needed) libffi (version 3.0 or later)
    • (Only if libffi is not available) libffcall (version 2.0 or later)
    • (Only applicable if running on Mac OS) XQuartz (version 2.7.7 or later)

    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.

Installation procedure

The recommended installation procedure is to use the MacPorts repository for the Apple OS X 10.11 platform or newer (see instructions here). For Fedora platforms it is recommended to use the yum/dnf repository (see instructions here). In all other cases the install_esoreflex script is the recommended way by following these instructions:

  1. Check that you have all the software prerequisites
  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 to Software prerequisites and follow those instructions.
  5. If any of the prerequisite binaries (indicated in 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.

Running EsoReflex

We recommend to read the tutorials prepared to sucessfully execute the workflows in a matter of minutes. It can be downloaded from this table under column "Documentation". For more detailed information, you can read the pipeline user manual which can also be downloaded from the same table.

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