Installing ROOT

ROOT is available on Linux, Mac, and (as a beta release) on Windows.
The latest stable ROOT release is 6.22/02 (about ROOT versioning scheme).

There are several ways to install ROOT on your computer: they are all listed in the table of content on the right. Which one is best for you depends on your operating system and usage requirements. In all cases, make sure to always use the most recent ROOT release possible to get the latest bug fixes, features and quick user support.

Download a pre-compiled binary distribution

We distribute pre-compiled ROOT for several major Linux distributions as well as MacOS and (as a beta) Windows. The steps to install a pre-compiled binary are simple:

  1. Install all required dependencies with the system package manager
  2. Download the release for the desired platform and ROOT version
  3. Unpack the archive
  4. Add the ROOT libraries and executables to your environment by sourcing the appropriate thisroot.* script. These setup scripts can be found in the ROOT binary release, in the bin directory.

For example, on Ubuntu 19, a user could execute the following bash commands to install ROOT v6.22/00, after installing all required dependencies:

$ wget https://root.cern/download/root_v6.22.00.Linux-ubuntu19-x86_64-gcc9.2.tar.gz
$ tar -xzvf root_v6.22.00.Linux-ubuntu19-x86_64-gcc9.2.tar.gz
$ source root/bin/thisroot.sh # also available: thisroot.{csh,fish,bat}

To avoid having to source thisroot.sh every time one needs to use ROOT, it is typical to add the instruction to .bashrc, .profile or analogous configuration files. Note, however, that sourcing thisroot.sh might interfere with ROOT versions installed with different methods.

Install via a package manager

Supported by the community: these packages are not maintained by the ROOT team, but by helpful members of the community. Please go through each package manager’s standard channels to report any related issue. If you package ROOT and would like to be added to the list below, please contact us by clicking the letter icon at the bottom of the page.

Conda

For any Linux distribution and MacOS, ROOT is available as a conda package. To create a new conda environment containing ROOT and activate it, execute

$ conda create -c conda-forge --name <my-environment> root
$ conda activate <my-environment>

More instructions about using the conda package are available in this blog post.

Please report any issues with the conda package here.

Linux package managers

ROOT can be directly installed from the operating system’s package manager in the following Linux distributions:

Fedora

Fedora’s ROOT package can be installed with

$ yum install root

More typically, however, users will want more than just the base package. The full list of components can be seen at https://src.fedoraproject.org/rpms/root/ by clicking in one of the offered versions. To install ROOT with support for python and notebooks, for example, run

$ yum install root python3-root root-notebook

CentOS

ROOT is available on CentOS via EPEL. To install ROOT on CentOS, just run

$ yum install epel-release
$ yum install root

Arch Linux

Arch’s ROOT package can be installed with

$ pacman -Syu root

Gentoo

The Gentoo package for ROOT is sci-physics/root. It can be installed with

$ emerge sci-physics/root

Ubuntu and Debian-based distributions

The ROOT team is working on the release of an official .deb package. More news on this topic very soon.
In the meanwhile, ROOT is available on Ubuntu via conda or our pre-compiled binaries.

MacOS package managers

Homebrew

On Mac, ROOT is also available as a homebrew formula. You can install it with

$ brew install root

Macports

After installing macports, the ROOT port can be installed with

$ sudo port install root6

LCG releases on CVMFS

Pre-built ROOT without dependencies

If your platform mounts CVMFS (as, for example, CERN LXPLUS does), ROOT is directly available as an LCG release.

ROOT installations with minimal external dependencies are available for Fedora, Ubuntu, CentOS 7 and MacOS at:

/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/<version>/<platform>

For example, to set up ROOT 6.22/00 on a CentOS7 machine that already has all ROOT required dependencies installed, just run:

source /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.22.00/x86_64-centos7-gcc48-opt/bin/thisroot.sh

ROOT plus dependencies

On CentOS7, ROOT as well as its dependencies and many other packages are also available as an LCG view:

/cvmfs/sft.cern.ch/lcg/views/LCG_<version>/<platform>

For example, to set up a full environment with ROOT 6.20/02 on CERN LXPLUS, you can run:

source /cvmfs/sft.cern.ch/lcg/views/LCG_97/x86_64-centos7-gcc8-dbg/setup.sh

To check what ROOT version is contained in an LCG release, check lcginfo.cern.ch.

Gentoo Prefix on CVMFS

ROOT is also experimentally available in a Gentoo Prefix installation inside the contrib area of the SFT CVMFS repository. To use it from there, run

$ /cvmfs/sft.cern.ch/lcg/contrib/gentoo/linux/x86_64/startprefix

This will drop you into a new shell where all software from the prefix is available.

Run in a Docker container

ROOT Docker containers for several linux flavours are available at ROOT’s official DockerHub.

For example, to try out the latest ROOT release just run docker run -it rootproject/root.

Run on CERN LXPLUS

Users with a CERN computing account can simply connect to lxplus.cern.ch via SSH and start root: the latest stable version is installed as a normal system package.

Note that certain features (e.g. multi-threading capabilities) are not available on lxplus.cern.ch (or, equivalently, lxplus7.cern.ch) due to incompatible versions of certain ROOT dependencies on CentOS7. You can use lxplus8.cern.ch to get access to CentOS8, where this limitation is not present.

Build from source

In case no other installation method is available, or if you want full control over the options ROOT is built with, it is possible to compile ROOT from source. See Building ROOT from source for detailed instructions.

As a quick summary, after installing all required dependencies, ROOT can be compiled with these commands on most UNIX-like systems:

# substitute `v6-22-00-patches` with the patches branch of the latest release
$ git clone --branch v6-22-00-patches https://github.com/root-project/root.git root_src
$ mkdir root_build root_install && cd root_build
$ cmake -DCMAKE_INSTALL_PREFIX=../root_install ../root_src # && check cmake configuration output for warnings or errors
$ cmake --build . -- install -j4 # if you have 4 cores available for compilation
$ source ../root_install/bin/thisroot.sh # or thisroot.{fish,csh}