RPM Package Installation

Quick Start

The following provides a minimal set of installation instructions to get started with RPM installations. For more information or if you encounter problems, please refer to the detailed sections that follow.

Currently this procedure is supported for Fedora 20 to 25 and Scientific Linux 7 (SL7) for 64 bits architectures. You must have sudo/root access to install the packages through the yum package manager. Contact your system administrator for that.

Run the commands from the following steps in a terminal window:

  1. Configure the ESO repository (This step is only necessary if the ESO repository has not already been previously configured.)

    If you are runing Fedora 20 or 21, run the following commands:

    sudo yum install yum-utils
    sudo yum-config-manager --add-repo=ftp://ftp.eso.org/pub/dfs/pipelines/repositories/stable/fedora/esorepo.repo

    If you are running Fedora 22 or newer, run the following commands:

    sudo dnf install dnf-plugins-core
    sudo dnf config-manager --add-repo=ftp://ftp.eso.org/pub/dfs/pipelines/repositories/stable/fedora/esorepo.repo

    If you are running SL7, run the following commands:

    sudo yum install yum-utils ca-certificates yum-conf-repos
    sudo yum install yum-conf-epel
    sudo yum-config-manager --add-repo=ftp://ftp.eso.org/pub/dfs/pipelines/repositories/stable/sl/esorepo.repo

    Note that installation of yum-utils or dnf-plugins-core is only necessary if the appropriate YUM/DNF plugin to manage repositories is missing.

    Note also that for the SL7 platform, the ESO packages depend on the EPEL repository. i You might want to skip the installation of package yum-conf-epel if you already set up the EPEL repository beforehand.

  2. Install the pipelines

    The list of available top level packages for different instruments is given by:

    sudo yum list esopipe-\*-all # (Fedora 20/21, SL7)
    sudo dnf list esopipe-\*-all # (Fedora 22 or newer)

    To install an individual pipeline use the following (This example is for X-Shooter. Adjust the port name to the instrument you require.):

    sudo yum install esopipe-xshoo-all # (Fedora 20/21, SL7)
    sudo dnf install esopipe-xshoo-all # (Fedora 22 or newer)

    To install all pipelines use:

    sudo yum install esopipe-*-all # (Fedora 20/21, SL7)
    sudo dnf install esopipe-*-all # (Fedora 22 or newer)

    Note that the first time you install an ESO package you will be asked to accept the ESO signing key.

  3. Launch pipeline front-ends: Reflex and esorex

    esorex recipe data.sof

    Note that Reflex is automatically installed only if the requested installed pipelines have a Reflex workflow. See below if you want to install it explicitly.

Using the RPM Pipeline Repository

Users that are having problems with the above Quick Start instructions or advanced users should read the following sections. Users of laptops and workstations provided by ESO should have the repository already configured if you have a recent installation of Fedora from helpdesk. Thus, you can immediately install the pipelines using the yum/dnf command. If this is not the case, continue to follow these instructions to setup the repository.

The following sections indicate in more detail how you can setup a Fedora or Scientific Linux box to use the repository of pipeline software provided by ESO. This installation procedure is currently only officially supported for Fedora 20 to 25 and Scientific Linux 7 on the x86_64 architecture.

These instructions assume that you have sudo access in your system.

1) Configure the repository

To use ESO's RPM repository you must first make it available within the yum or dnf configuration, depending on the OS and version you are using. dnf became the package manager from Fedora 22, although the yum command will still work, just as a wrapper around dnf. Scientific Linux 7 uses yum.

The repository only needs to be configured once. Thus, you can immediately skip to the pipeline installation section if the repository configuration has already been done. Otherwise continue with the following steps.

The following sections indicate how to manually configure the repository. This should only be necessary for experienced users or for special circumstances. In most cases, you can automatically configure the repository by following the instructions in the Quick Start section.

Add the yum/dnf configuration

For both yum and dnf, the repository URL must be added to a configuration file under the directory /etc/yum.repos.d/. The file name can be anything, as long as it is unique within that directory. For this example we use the name esorepo.repo. Thus, create the file /etc/yum.repos.d/esorepo.repo as root and add the following lines if you are on a Fedora system:

name=European Southern Observatory RPM repository for Fedora $releasever

For Scientific Linux you should use the following lines instead:

name=European Southern Observatory RPM repository for Scientific Linux $releasever

The URLs in the configurations indicated above can be adjusted as needed to select a particular repository if required. However, the above configurations should already work with all the current public ESO repositories for Fedora and Scientific Linux.

Setup the RSA public key

To avoid unnecessary warning messages, you should manually add the public signing key for the ESO packages. This is easily done with the following command for Fedora:

sudo rpm --import 'ftp://ftp.eso.org/pub/dfs/pipelines/repositories/stable/fedora/eso-pubkey.asc'

Or the following command for Scientific Linux:

sudo rpm --import 'ftp://ftp.eso.org/pub/dfs/pipelines/repositories/stable/sl/eso-pubkey.asc'

If you don't perform this step, the first time you download a package from the ESO repository you will be asked to accept the ESO key. For reference, the fingerprint of he ESO key is:

BFF6 E778 4C7F 87E7 D56A 5E9D 29EA 0648 3E71 FC17

2) Installing the pipelines

To check which pipeline packages are available for installation, you should run the following command:

yum list esopipe* # (Fedora 20/21, SL7)
dnf list esopipe* # (Fedora 22 or newer)

This will bring up a full list of packages available.

When you have selected a package, you use the "yum/dnf install" command to install it. For example, if you want to install all pipeline packages related to X-Shooter, you simply execute the following command:

sudo yum install esopipe-xshoo-all # (Fedora 20/21, SL7)
sudo dnf install esopipe-xshoo-all # (Fedora 22 or newer)

esopipe-xshoo-all is a meta package that will pull in all child packages that contain the recipe plugins, workflows and supporting tools. It is possible to pull in a more restricted subset of packages, if you know before hand exactly what you need and do not need. Consult the descriptions of the packages with the "yum/dnf info" command for details about what each package contains/provides.


  • If the Kepler home directory ~/.kepler exists from a previous installation of Reflex, the cached files under there may not be compatible with the newly installed Reflex version. Thus, before launching the new Reflex for the first time, you should backup the current Kepler directory and then remove it. This is only necessary once, the first time after installation.

3) Installing Reflex explicitely

Reflex will be installed automatically if a pipeline with a workflow is requested to be installed. However it is also possible to install it explictely with the following command:

sudo yum install esoreflex # (Fedora 20/21, SL7)
sudo dnf install esoreflex # (Fedora 22 or newer)

4) Running Reflex/esorex

Once installation of a pipeline is complete, you can run Reflex of EsoRex tools to execute the pipeline.

you can start Reflex with following command from a terminal window:


Remember: the appropriate wkf and esoreflex packages must be installed. The easiest is to simply install the gui or all packages. For example, for X-Shooter it would be esopipe-xshoo-gui or esopipe-xshoo-all.

A number of useful command line options are available for the esoreflex command. Such as the -n | -non-interactive option to run a workflow in batch mode. For more information, please see the help message by running the following:

esoreflex -help

To run esorex, simply call the esorex command with the name of recipe you want to execute and the set of frames:

esorex recipe data.sof

When installing the rpm packages the default path to the recipe plugins works out of the box and esorex doesn't have to be configured in any special way. However if you have a customized $HOME/.esorex/esorex.rc configuration file, the option esorex.caller.recipe-dir might be pointing to the wrong place. In this case, set the esorex.caller.recipe-dir option to /usr/lib64/esopipes-plugins Other option is to remove $HOME/.esorex/esorex.rc if it is not neede anymore.

5) Upgrading Pipelines

If you have previously installed a given pipeline with these instructions and a new version has been made available by ESO, you can upgrade it using the following commands:

sudo yum upgrade --refresh esopipe-xshoo-all # (Fedora 20/21, SL7)
sudo dnf upgrade --refresh esopipe-xshoo-all # (Fedora 22 or newer)

It is also possible to upgrade all the pipelines at once. In this case remember that other rpm packages might be updated as well. The commands are:

sudo yum upgrade --refresh # (Fedora 20/21, SL7)
sudo dnf upgrade --refresh # (Fedora 22 or newer)

6) Downgrading Pipelines

It is possible to downgrade pipelines to a previous version of the package with the following command:

sudo yum downgrade esopipe-xshoo-all-2.6.4 # (Fedora 20/21, SL7)
sudo dnf downgrade esopipe-xshoo-all-2.6.4 # (Fedora 22 or newer)

If no version is specified (i.e. esopipe-xshoo-all instead of esopipe-xshoo-all-2.6.4), then it will downgrade to the highest of all known lower versions. If you want to list all the available versions of a given package you can use the following command:

yum list --showduplicates esopipe-xshoo-all # (Fedora 20/21, SL7)
dnf list --showduplicates esopipe-xshoo-all # (Fedora 22 or newer)

7) Removing Pipelines

The yum and dnf commands can be used to remove pipelines that are no longer needed. However, they behave differently in the way they treat dependencies. For instance, assuming that esopipe-xshoo-all is the only package manually installed, following the instructions above, the following commands will remove that package:

sudo yum remove esopipe-xshoo-all # (Fedora 20/21, SL7)
sudo dnf remove esopipe-xshoo-all # (Fedora 22 or newer)

However, the yum command will only remove package esopipe-xshoo-all, while the dnf will remove also all the dependent packages which are no longer used, like esoreflex, cpl, esopipe-xshoo-recipes, etc...

You can configure yum to behave in the same way as dnf does. Check this question in Stackexchange for details. Conversely, you can configure dnf to behave the way yum does. You will have to set option clean_requirements_on_remove to False in the dnf configuration. See dnf.conf man page for details.

8) Installing Individual Components

Installing pipelines with the top level meta packages, for example esopipe-xshoo-all for X-Shooter, will typically consume a large amount of disk space because it installs all standard components of the pipeline. In some cases you may only be interested in a subset of the pipeline's components. Taking X-Shooter as an example again, to install just the recipe plugins you can run one of the following commands:

sudo yum install --refresh esopipe-xshoo-recipes # (Fedora 20/21, SL7)
sudo dnf install --refresh esopipe-xshoo-recipes # (Fedora 22 or newer)

It is possible to get a listing of all available packages for a specific pipeline. For example by using one of the following commands:

yum list esopipe-xshoo* # (Fedora 20/21, SL7)
dnf list esopipe-xshoo* # (Fedora 22 or newer)

To help decide which packages are most relevant, some information about each individual package is available with one of the following commands:

yum info esopipe-xshoo-recipes # (Fedora 20/21, SL7)
dnf info esopipe-xshoo-recipes # (Fedora 22 or newer)

9) Removing Individual Components

In some cases it is interesting to remove individual components of the pipeline. For instance, after installing the esopipe-xshoo-all package it has been decided that the demo data is no longer needed and can be removed. One of the following commands would do the job:

sudo yum remove esopipe-xshoo-datademo # (Fedora 20/21, SL7)
sudo dnf remove esopipe-xshoo-datademo # (Fedora 22 or newer)

Take into account that some components depend on others, and is therefore not possible to remove individually some components. For instance, the esopipe-xshoo-recipes depend on the cpl component.


This section contains some solutions and workarounds for known problems that you may face when using the repository.

Fits viewer missing when running Reflex

When running Reflex and attempting to inspect a FITS file you might see the following error message:

Cannot run program "fv": error=2, No such file or directory

This happens because the fv program is either not installed on your system or not visible. If fv is not installed then download it from the HEASARC webpage and follow the installation instructions provided there. The following paragraphs will assume that you have unpacked the downloaded tarball into /home/user/fv/.

Once fv is correctly installed the esoreflex program needs to be made aware of where to find it. In essence this means that the binary should exist under one of the locations in the system PATH. However, the most straight forward solution is to use a customised configuration file for esoreflex. If you do not already have a file called ~/.esoreflex/esoreflex.rc then create one with the following command:

esoreflex -create-config

Next, edit ~/.esoreflex/esoreflex.rc and change the parameter esoreflex.path to contain the path where the fv binary can be found. In our example the modified line in the configuration should look as follows:


You must then restart all Reflex instances.

Reflex problem with OpenJDK Java in Fedora 22

In some cases, starting Reflex in Fedora 22 will show a pop-up error and a message in the console that contains the following text:

Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class sun.security.ec.SunEC

This is due to early Fedora 22 shipping incompatible versions of openjdk and nss library. The issue was fixed in a later upgrade and can be solved by running the following command:

sudo dnf upgrade nss

Problem with interactive windows

It has been observed that under Fedora 22 some workflows (notably the KMOS one) crash when showing some of the Python interactive windows. The crash is recognized by the following error message:

Execution failed with the following stderr:

As a workaround, rerunning the workflow will usually work as expected. Due to the random nature of the bug a solution couldn't be found. If you experience this problem please send a comment to usd-help@eso.org with details about the platform.