ESO Pipelines and EsoReflex Software Prerequisites for Source-based Installations (+Homebrew on Linux)
- Software prerequisites for source-based installation
- Software prerequisites for pipeline source installations
- Software prerequisites for KMOS, XSHOOTER, FORS, and MOLECFIT pipeline source installations
- Software prerequisites for EsoReflex source installations
- Software prerequisties for EDPS source installations
- Using Virtual Environment Tecnologies (e.g. *conda, venv) to provide Python prerequisities
- Software prerequisites for Gasgano source installations
- Installation procedure
- Bug reports
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:Take into account that Xcode needs also to be installed (a prerequisiste also for MacPorts itself).
sudo port install pkgconfig autoconf automake libtool bzip2 curl
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: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.,
sudo port install gcc8 +gfortran
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:
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/javaYou 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:Note that the python-matplotlib-wx package is not available in the official repositories but ESO provides it in its repositories.
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
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/javaYou 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/javaYou 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
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:sudo port select --set python3 python39
In some shells you might have to do a rehash:export PATH=/opt/local/bin:$PATH
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:
- Check that you have all the software prerequisites for pipeline source installation as well as the software prerequisites for EsoReflex
- Download install_esoreflex
- Make it executable:
chmod u+x install_esoreflex
- 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.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.
./install_esoreflex
- If any of the prerequisite binaries (indicated in Reflex software prerequisites ) do not exist in one of the paths indicated by the command,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.
getconf PATH
- 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.
- 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.
- Make sure that EsoRex can access the uves recipes using the following command:
esorex --recipes
- Download and install EsoReflex
- Start EsoReflex and open the workflow located in the installation directory of the pipeline:
installation_dir/share/reflex/workflows/pipeline-x.x.x
- Demo data can be found in this table under column "Demo Data Sets".
- 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