ROOT Installation Guide

ROOT is an advanced software package developed at CERN, the European Organization for Nuclear Research. It is widely used for data analysis and visualization in high-energy physics and nuclear physics as well as other fields.

ROOT can easily run on any modern laptop. You will need at least 2 GB of memory (4 GB recommended) and about 1 GB of disk space (2-3 GB if building from source).

Installing the software varies in difficulty from very easy to fairly high, depending on whether or not your computer is one of the supported platforms. In general, there are three typical ways to get ROOT:

  1. A set of pre-compiled packages provided by your operating system's package manager
    • Very easy to install and almost certain to work well
    • Easy updating to new versions
    • Requires administrative privilege on your machine
    • Only one, usually very recent version can be installed at any given time (which is what most people want, of course)
    • Recommended approach, if possible
  2. A pre-compiled binary distribution package provided by the ROOT team.
    • Easy, but there is a certain risk of problems due to unexpected incompatibilities
    • May have multiple versions installed in parallel
    • Only available for the most recent operating system versions
    • May be installed privately without administrative privilege
    • Requires manual updating
  3. Building from source
    • Moderately difficult. Experience with building large software packages recommended.
    • Can take several hours to build. Cannot be done while running on laptop battery power.
    • Configuration can be tricky. Updating must be done manually.
    • Missing dependencies are detected during configuration and need to be identified and installed manually
    • Gives access to all ROOT features, including very advanced ones (not generally needed)
    • Multiple versions can be installed in parallel

The current version of ROOT is 6.14/00 at the time of his writing. Following are instructions to get up and running quickly with this version, if possible, on specific operating systems based on our experience.

Linux

Red Hat Enterprise Linux (RHEL) 7, CentOS 7 and compatible

  1. Enable the EPEL (Extra Packages for Enterprise Linux) repository. Follow the EPEL Quickstart instructions.
  2. Install the core ROOT package. This will install the most commonly used libraries. More packages are available if you need advanced features later.
    sudo yum install root
    
  3. To work with ROOT from within Python 3, also install python34-root. This will automatically install python 3.4 as well:
    sudo yum install python34-root
    

Fedora

For Fedora 24 and higher, ROOT 6 is available in the main Fedora repository. The current version of ROOT, 6.12/06, requires at least Fedora 26. Simply do

sudo yum install root
sudo yum install python3-root

For Fedora 20-22, CERN offers binary distributions of older versions of ROOT:

See installing a binary distribution for instructions.

Ubuntu

At present, Ubuntu repositories only offer ROOT 5 packages, which should be considered obsolete. Do not install these. To get ROOT 6 on Ubuntu 14, 16 or 17, download and install the appropriate binary release from CERN:

See installing a binary distribution for instructions.

Arch Linux, Debian, and other Linux varieties with at least gcc 4.8

Build ROOT from source.

RHEL6, CentOS 6 and older Linux distributions

ROOT 6 cannot be installed easily on these systems, not even from source, because the system compiler is too old. (ROOT 6 requires a fully C++11-capable compiler.) Pre-built ROOT 5 packages are available, however.

Of course, it is possible to run ROOT 6 even on quite old Linux systems. One needs to install a modern compiler first, build ROOT from source using that compiler, and run ROOT with that compiler's runtime libraries. This procedure is beyond the scope of this document, however.

macOS

Before attempting to install ROOT, please set up the Xcode command line tools (unless already done). From a Terminal, run

$ xcode-select --install

Once this command completes, you should have a working compiler:
$ g++ --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 9.0.0 (clang-900.0.39.2)
...

A quick way to get ROOT on macOS/OSX 10.8-10.13 is to download the appropriate binary distribution from CERN:

See installing a binary distribution for instructions.

However, please note that using versions of ROOT older than 6.08 is discouraged as those releases were quite buggy. If you still run an old version of macOS, it may be better to get the latest ROOT release and build from source.

ROOT is also available from Homebrew (package root) and MacPorts (package root6). For example, you can install it from Homebrew on macOS 10.11-10.13 as follows:

  1. Install Homebrew (skip if you have already done that before):
    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 
    

    Follow the text prompts to complete the installation.
  2. With Homebrew set up, installing ROOT and Python 3 is now very easy:
    brew install root python
    

Homebrew's ROOT comes with support for Homebrew's Python 3, while the CERN binary distributions support Apple's native Python 2. However, CERN's binary releases are built with more features enabled.

Windows

Starting with ROOT 6.14/00, CERN offers a prebuilt distribution for Windows. It requires the VisualStudio 2017 Redistributable C++ Runtime and should work on Windows 7 and up. See also the general Visual Studio 2017 download page.

Alternatively, you can download and install VirtualBox and run our CentOS 7 virtual machine image, where ROOT (and other useful software) is pre-installed. You will also find installation instructions there. Unfortunately, this requires a large download, about 20 GB of disk space for the uncompressed VM image, and at least 4 GB, preferably 8 GB, of memory on your host computer. Also, be warned that in some relatively rare cases VirtualBox may not run properly on your machine, depending on a variety of hardware or software details.

Testing your installation

If you installed ROOT from your distribution's package manager, or from Homebrew/MacPorts, no setup should be necessary to start using the software. Just type root, and you should see a startup banner similar to this:

$ root
   ------------------------------------------------------------
  | Welcome to ROOT 6.12/06                http://root.cern.ch |
  |                               (c) 1995-2017, The ROOT Team |
  | Built for macosx64                                         |
  | From tag v6-12-06, 9 February 2018                         |
  | Try '.help', '.demo', '.license', '.credits', '.quit'/'.q' |
   ------------------------------------------------------------

root [0] 

If you installed a binary distribution or from source, you will need to run a setup script first:

source <dir-where-you-installed-root>/bin/thisroot.sh

or, if you are using tcsh
source <dir-where-you-installed-root>/bin/thisroot.csh

After doing so, the root command should be available, and you can start ROOT as shown above.

It is probably a good idea to set up ROOT from your shell's login script. To do so, simply put the above "source" command near the end of your ~/.bash_profile (or ~/.login for csh/tcsh).

Sourcing the setup script is also necessary on the JLab ifarm systems. There, you can find various ROOT versions installed under /apps/root. For example, to use the latest version, do

ifarm1402.jlab.org$ source /apps/root/6.12.04/bin/thisroot.csh

Once ROOT is set up and running, you can type

root [0] .demo

at the ROOT prompt for a demonstration of some of ROOT's graphics capabilities.

Sometimes it is interesting to find out more details about the installation of ROOT that you are working with. ROOT provides a command called root-config for this purpose. For example, to show which "features" (capabilities) ROOT was compiled with, run root-config --features. Here is an example from JLab's RHEL7 ifarm systems, which you can run after setting up ROOT as described in the preceding paragraph:

ifarm1402.jlab.org$ which root-config
/u/apps/root/6.12.04/root/bin/root-config
ifarm1402.jlab.org$ root-config --features
asimage astiff builtin_afterimage builtin_ftgl builtin_gl2ps builtin_glew builtin_llvm builtin_lz4 builtin_tbb
builtin_unuran cling cxx11 exceptions explicitlink fftw3 gdml genvector http imt mathmore minuit2 mysql opengl
pch pgsql python qt roofit shared soversion sqlite ssl thread tmva unuran x11 xft xml

Some of these items are self-explanatory, others probably obscure. Consult the ROOT documentation for a full description.

Python support (PyROOT)

You can see "python" in the "feature list" above, indicating support for Python 2. We can check this further:

ifarm1402.jlab.org$  root-config --python-version
2.7

This version of ROOT therefore has support for Python 2.7. We can try it out:
ifarm1402.jlab.org$  python -c 'import ROOT'

If this finishes without error, this version of Python will probably work correctly with this version of ROOT. However, be careful; sometimes multiple versions of Python are installed on the same machine. On ifarm, there are two Python 2.7 versions:
ifarm1402.jlab.org$  which python
/apps/bin/python
ifarm1402.jlab.org$  /apps/bin/python --version
Python 2.7.12
ifarm1402.jlab.org$  /usr/bin/python --version
Python 2.7.5

In this case, do not be completely surprised if your PyROOT experience turns out to be a bit bumpy and be prepared to file a bug report. On your personal system, try to make sure that only one version is installed.