Binaries - CVMFS and RPMs

We provide builds of the O² ecosystem on CVMFS and via RPMs.

CVMFS

On lxplus

You can run our O² CVMFS builds from lxplus7.cern.ch to be on the safe side: CVMFS is immediately available and you can start running in seconds.

On your own machine

The following Operating System (OS) is supported:

  • RHEL 7

moreover the following OSes:

  • Centos 8
  • Ubuntu 18.04 / Debian 7 (and newer)
  • macOS Catalina

are supported on a best effort basis for development and analysis needs.

Setup

CVMFS is available in the form of packages for several operating systems. Read the documentation here. There is only one configuration variable to set up after the package is installed. Create the file /etc/cvmfs/default.local and add the following line:

CVMFS_HTTP_PROXY="DIRECT"

There is no need to explicitly configure CVMFS_REPOSITORIES.

Run

O² is available on alice-nightlies.cern.ch. To list the available versions:

/cvmfs/alice-nightlies.cern.ch/bin/alienv q | grep O2::nightly

Note that all CVMFS operations might take a while the first time in case content is not yet available locally. Subsequent runs will be faster.

To run a specific version do, for instance:

/cvmfs/alice-nightlies.cern.ch/bin/alienv enter VO_ALICE@O2::nightly-20180614-1

A new shell opens with the proper environment set.

RPMs

We currently provide RPMs produced on demand for certain packages. Our RPMs make it possible to install and run several versions of the same package at the same time. We produce our RPMs for RHEL 7 or equivalent.

Yum repositories

There are three RPM repositories available. They are all hosted on EOS as an ordinary CERN IT-managed website.

The main repository contains non-updatable RPMs that allow for the installation of multiple versions at the same time. Configure it as follows (as root):

cat > /etc/yum.repos.d/alisw-el7.repo <<EOF
[alisw-el7]
name=ALICE Software - EL7
baseurl=https://s3.cern.ch/swift/v1/alibuild-repo/RPMS/el7.x86_64/
enabled=1
gpgcheck=0
EOF

What is available in the repository can be configured by issuing a pull request to this file.

There are two additional repositories. The updatable RPMs repository does not allow for multiple versions of the same package to be installable at the same time, and it behaves more similarly to what happens to the system packages. Configure it as follows:

cat > /etc/yum.repos.d/alisw-upd-el7.repo <<EOF
[alisw-upd-el7]
name=ALICE Software - EL7
baseurl=https://s3.cern.ch/swift/v1/alibuild-repo/UpdRPMS/el7.x86_64/
enabled=1
gpgcheck=0
EOF

Open a pull request to this file to select what RPMs are generated.

Find and install packages

All our packages begin with alisw. Search for a package:

yum search alisw-Control

If you don’t find the package you want, you may want to try forcing Yum to update its cache:

yum -v clean expire-cache

Install a package:

yum install -y alisw-Control+v20180613-1

All its dependencies will be automatically downloaded. Note that, in the case of non-updatable RPMs, the version number is part of the actual package name.

Notes on installing for RHEL8 / Centos 8

Instructions are similar to the above. You just need to use:

cat > /etc/yum.repos.d/alisw-el8.repo <<EOF
[alisw-el8]
name=ALICE Software - EL8
baseurl=https://alirepo.web.cern.ch/alirepo/RPMS/el8.x86_64
enabled=1
gpgcheck=0
EOF

Load packages

You can load packages using the aliswmod command.

List all the available packages with:

aliswmod avail

Load a package environment with:

aliswmod enter Control/v20180613-1

You can subsequently exit the new shell that was opened with a simple exit.

The command aliswmod works the same way as modulecmd: if you want, for instance, to load packages in the current shell without opening a new one with enter, you can do:

eval `aliswmod load Control/v20180613-1`

which should work in most Unix shells (including tcsh, ksh, and zsh). Note that, differently from modulecmd, you don’t need to specify the shell as it is automatically detected by aliswmod itself.

Produce RPMs

Use this Jenkins job to launch a RPM build.

Add external dependencies to RPMs

It is possible to add standard system dependencies to the produced RPMs if desired. To do so, it is sufficient to make the build recipe produce a special file called .rpm-extra-deps in the root of the installation directory. The file should contain the package name and version specification using the format expected by RPMs.

An example follows: it’s similar to the creation of Modulefiles:

# This is the body of the recipe: add extra RPM dependencies
cat > $INSTALLROOT/.rpm-extra-deps <<EOF
axel >= 2.4
python36 <= 3.7
jq >= 1.5
EOF

The file will be created under $INSTALLROOT and will be simply ignored by a local installation. The publisher will create a RPM that installs the given dependencies as well.

Automatic builds

Every night (Geneva time) a new O² build is produced and published on alice-nightlies.cern.ch. RPMs are produced on-demand only.

Develop a single package reusing a CVMFS / RPM installation

EXPERIMENTAL

See here

TODO copy paste the instructions here once ready.