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 38 to 39, CentOS 7 and Scientific Linux 7 (SL 7) for 64 bits architectures. You must have sudo/root access to install the packages through the yum/dnf 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.

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 running Fedora 38 to 39, run the following commands:

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

    If you are running CentOS 7, run the following commands:

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

    If you are running SL 7, 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=https://ftp.eso.org/pub/dfs/pipelines/repositories/stable/sl/esorepo.repo

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

    Note also that for the CentOS 7 and SL 7 platforms, the ESO packages depend on the EPEL repository. 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 dnf list esopipe-\*-all # (Fedora 38 to 39)
    sudo yum list esopipe-\*-all # (CentOS 7, SL 7)

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

    sudo dnf install esopipe-xshoo-all # (Fedora 38 to 39)
    sudo yum install esopipe-xshoo-all # (CentOS 7, SL 7)

    To install all pipelines use:

    sudo dnf install esopipe-\*-all # (Fedora 38 to 39)
    sudo yum install esopipe-\*-all # (CentOS 7, SL 7)

    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: EsoReflex and EsoRex

    esorex recipe data.sof

    Note that EsoReflex is automatically installed only if the requested installed pipelines have a EsoReflex 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 38 to 39, CentOS 7 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. CentOS 7 and Scientific Linux 7 use 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 CentOS you should use the following lines instead:

name=European Southern Observatory RPM repository for CentOS $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, CentOS 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 'https://ftp.eso.org/pub/dfs/pipelines/repositories/stable/fedora/eso-pubkey.asc'

For CentOS

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

For Scientific Linux:

sudo rpm --import 'https://ftp.eso.org/pub/dfs/pipelines/repositories/stable/centos/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:

dnf list esopipe-\* # (Fedora 38 to 39)
yum list esopipe-\* # (CentOS 7, SL 7)

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 dnf install esopipe-xshoo-all # (Fedora 38 to 39)
sudo yum install esopipe-xshoo-all # (CentOS 7, SL 7)

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 EsoReflex, the cached files under there may not be compatible with the newly installed EsoReflex version. Thus, before launching the new EsoReflex 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 EsoReflex explicitly

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

sudo dnf install esoreflex # (Fedora 38 to 39)
sudo yum install esoreflex # (CentOS 7, SL 7)

4) Running EsoReflex/EsoRex

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

you can start EsoReflex 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 dnf upgrade --refresh esopipe-xshoo-\* # (Fedora 38 to 39)
sudo yum upgrade --refresh esopipe-xshoo-\* # (CentOS 7, SL 7)

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 dnf upgrade --refresh # (Fedora 38 to 39)
sudo yum upgrade --refresh # (CentOS 7, SL 7)

6) Downgrading Pipelines

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

sudo dnf downgrade esopipe-xshoo-all-2.6.4 # (Fedora 38 to 39)
sudo yum downgrade esopipe-xshoo-all-2.6.4 # (CentOS 7, SL 7)

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:

dnf list --showduplicates esopipe-xshoo-all # (Fedora 38 to 39)
yum list --showduplicates esopipe-xshoo-all # (CentOS 7, SL 7)

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 dnf remove esopipe-xshoo-all # (Fedora 33 or newer)
sudo yum remove esopipe-xshoo-all # (CentOS 7, SL 7)

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 dnf install --refresh esopipe-xshoo-recipes # (Fedora 38 to 39)
sudo yum install --refresh esopipe-xshoo-recipes # (CentOS 7, SL 7)

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

dnf list esopipe-xshoo\* # (Fedora 38 to 39)
yum list esopipe-xshoo\* # (CentOS 7, SL 7)

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

dnf info esopipe-xshoo-recipes # (Fedora 38 to 39)
yum info esopipe-xshoo-recipes # (CentOS 7, SL 7)

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 dnf remove esopipe-xshoo-datademo # (Fedora 38 to 39)
sudo yum remove esopipe-xshoo-datademo # (CentOS 7, SL 7)

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 EsoReflex

When running EsoReflex 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 EsoReflex instances.