wiki:InstallingROOT

Version 21 (modified by tbretz, 5 years ago) ( diff )

--

The preferred way to install root is from source and with *cmake*. The installation from source might not be necessary but is necessary for example if extra libraries (such as GQt for the FACT++ GUI) are required.

First download the source tar-ball from http://root.cern.ch (The version in the following is just an example, names and places are just suggestions)

[0] tar xvfz root_v6.14.04.source.tar.gz      # Extract the tar file 
[1] mv root-6.14.04 root-6.14.04-src          # Rename the source directory (for convenience)
[2] mkdir root-6.14.04-build                  # Create a build directory
[3] cd root-6.14.04-build                     # Change into the build directory
[4] cmake ../root-6.14.04-src                 # Create the build environment
[5] make                                      # Make root (might take an hour or more!)
[6] make package                              # Create a tar-ball
[7] cd ..                                     # Up by one level
[8] tar xvfz root-6.14.04-build/root_v6.14.04.<something>.tar.gz # Extract the tar-ball
[9] mv root root-6.14.04                      # Rename the binary directory (for convenience)
[10] . root-6.14.04/bin/thisroot.sh           # Properly setup your environment

# Now you can remove source and build directory or keep it for future use
[10] rm -rf root-6.14.04-src                  
[11] rm -rf root-6.14.04-build                to keep it

You might want to call cmake to set up the build environment with a different (e.g. faster) compiler like clang:

[4] cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ../root-6.14.04-src

More details on supported flags can be found at: https://root.cern/building-root

To force the compilation of the GQt module

[4] cmake -Dqt=ON ../root-6.14.04-src

This option is *not* supported anymore in root 6.18. No solution for this exists by now. If you really need it (required to compile the FACT++ online GUI), you must not use this root version by now!

Note that if you run root from its build directory (not recommended!), root (6.14) need RootNewMacros.cmake during compilation of derived projects which is (only) located in the source directory. Therefore, you must not remove or change the name of the source directory. I hope that will be fixed in the future.

Font size

Lately, on modern screens, the default GUI fonts of root (10 and 12) are exceptionally small. They can be changed by adding the following lines to your .rootrc. As root is always using the one in your home directory additionally, it is advisable to add these lines to your global .rootrc.

Gui.DefaultFont:            -*-helvetica-*-r-*-*-18-*-*-*-*-*-iso8859-1
Gui.MenuFont:               -*-helvetica-*-r-*-*-18-*-*-*-*-*-iso8859-1
Gui.MenuHiFont:             -*-helvetica-bold-r-*-*-18-*-*-*-*-*-iso8859-1
Gui.DocFixedFont:           -*-courier-*-r-*-*-18-*-*-*-*-*-iso8859-1
Gui.DocPropFont:            -*-helvetica-*-r-*-*-18-*-*-*-*-*-iso8859-1
Gui.IconFont:               -*-helvetica-*-r-*-*-16-*-*-*-*-*-iso8859-1
Gui.StatusFont:             -*-helvetica-*-r-*-*-16-*-*-*-*-*-iso8859-1

Packages

Ubuntu Packages known to be required

  • libxpm-dev
  • libxft-dev

Suggested (speeds up compilation):

  • clang (-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++)
  • llvm-5.0 (-Dbuiltin_llvm=OFF -DLLVM_CONFIG=/usr/bin/llvm-config-5.0)
  • libafterimage-dev (-Dbuiltin_afterimage=OFF)
  • libftgl-dev (-Dbuiltin_ftgl=OFF)
  • libglew-dev (-Dbuiltin_glew=OFF)
  • libz-dev
  • libcfitsio-dev
  • libgl2ps-dev
  • libgsl-dev
  • liblz4-dev
  • liblzma-dev
  • libssl-dev
  • libgif-dev
  • libxml2-dev
  • libfftw3-dev
  • libtbb-dev
  • libsqlite-dev
  • libpythia8-dev
  • libblas-dev

If you have a too old version of cmake, you can download binary packages at https://cmake.org/download/. Usually, it is enough to call cmake with its full path to switch version. So just unpack the tar-ball and call the cmake binary in the package.

The requirements as of now are:

  • root >=6.18: cmake >=3.9
  • root >=6.16: cmake >=3.6
  • root >=6.14: cmake >=3.4.3
  • root >=6.08: cmake >=3.4.3
  • root >=5.24: cmake >=2.8.8

This list is taken from the CMakeList.txt which is no guarantee that it really works.

Note that newer root version might also require newer compilers. (No list available!)

Note: See TracWiki for help on using the wiki.