ALIBUILD

Quick Start

aliBuild is a tool to simplify building and installing ALICE / ALFA software. This is a quickstart Guide which will show you how to build and use a package, for extended documentation please have a look at the user guide.

Setting up

The tool itself is available as a standard PyPi package. You can install it via:

pip install alibuild

Alternatively, if you cannot use pip, you can checkout the Github repository and use it from there:

git clone https://github.com/alisw/alibuild.git

This will provide you the tool itself.

In order to work you will need a set of recipes from a repository called alidist. On the first invokation of alibuild the recipes will be downloaded and put in a alidist folder. In case you need to use a special branch / repository you can always git clone the repository yourself. By default alibuild will pickup the recipes found in $PWD/alidist.

Building a package

Once you have obtained both repository, you can trigger a build via:

aliBuild [-d] -j <jobs> build <package>

(or alibuild/aliBuild if you are working from sources) where:

  • <package>: is the name of the package you want to build, e.g.:
    • AliRoot
    • AliPhysics
    • O2
    • ROOT
  • -d can be used to have verbose debug output.
  • <jobs> is the maximum number of parallel processes to be used for building where possible (defaults to the number of CPUs available if omitted).

If you need to modify the compile options, you can do so by looking at the recipes in your local alidist folder and amend them.

Results of a build

By default (can be changed using the -c option) the installation of your builds can be found in:

sw/<architecture>/<package-name>/<package-version>-<revision>/

where:

  • <architecture> is the same as the one passed via the -a option.
  • <package-name>: is the same as the one passed as an argument.
  • <package-version>: is the same as the one found in the related recipe in alidist.
  • <package-revision>: is the number of times you rebuilt the same version of a package, using a different recipe. In general this will be 1.

For example, on Centos7:

sw/slc7_x86-64/AliRoot/v6-16-01-1

Using the built package

Environment for packages built using aliBuild is managed by Environment Modules and a wrapper script called alienv. Notice you will need the package environment-modules on Linux or modules on macOS for the following to work.

Assuming you are in the toplevel directory containing alibuild, alidist and sw you can do:

alienv q

to list the available packages, and:

alienv enter VO_ALICE@PackageA::VersionA[,VO_ALICE@PackageB::VersionB...]

to enter a shell with the appropriate environment set. To learn more about alienv you can also look at the user guide.