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.
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
In case you need to use a special branch / repository you can always
the repository yourself. By default alibuild will pickup the recipes found
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.:
-dcan 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:
<architecture>is the same as the one passed via the
<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:
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
macOS for the following to work.
Assuming you are in the toplevel directory containing
sw you can do:
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.