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..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!) == ROOT Problems == We have encountered problems with root 6.18.04 (and most likely others) and some database related FACT++ tools when root compiles its own ssl-library. What happens is that under some cirumstances the system ssl-library jumps into functions compiled by root and the program crashes. A solution is to ensure that root uses the system library instead. This is requested adding ```-Dbuildin_ssl=OFF``` to the cmake-call. It should also be enough to ensure that libssl-dev is installed before the call to cmake.