We provide builds of the O² ecosystem on CVMFS and via RPMs.
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.
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:
There is no need to explicitly configure
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.
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.
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
You can load packages using the
List all the available packages with:
Load a package environment with:
aliswmod enter Control/v20180613-1
You can subsequently exit the new shell that was opened with a simple
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
zsh). Note that, differently
modulecmd, you don’t need to specify the shell as it is automatically detected by
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.
Every night (Geneva time) a new O² build is produced and published on
alice-nightlies.cern.ch. RPMs are produced on-demand
Develop a single package reusing a CVMFS / RPM installation
TODO copy paste the instructions here once ready.