Project

General

Profile

ROOT Installation Guide » History » Version 9

Ole Hansen, 05/18/2018 12:18 AM

1 1 Ole Hansen
h1. ROOT Installation Guide
2
3
{{toc}}
4
5
"ROOT":https://root.cern is an advanced software package developed at "CERN":https://home.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.
6
7
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). 
8
9
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":https://root.cern/supported-platforms. In general, there are three typical ways to get ROOT:
10
11
# A set of pre-compiled packages provided by your operating system's package manager
12 2 Ole Hansen
** Very easy to install and almost certain to work well
13 1 Ole Hansen
** Easy updating to new versions
14
** Generally requires administrative privilege on your machine
15
** Recommended approach, if possible
16
# A pre-compiled "binary distribution package":https://root.cern/content/release-61206 provided by the ROOT team.
17
** Easy, but there is a certain risk of problems due to unexpected incompatibilities
18
** Only available for the most recent operating system versions
19
** May be installed privately without administrative privilege
20
** Requires manual updating
21
# Building from "source":https://root.cern/building-root
22
** Moderately difficult. Experience with building large software packages recommended.
23
** Can take several hours to build. Cannot be done while running on laptop battery power.
24
** Configuration can be tricky. Updating is a time-consuming manual process.
25
** Missing dependencies are detected during configuration and may need to be installed separately
26
** Gives access to all ROOT features, including very advanced ones (not generally needed)
27
28
The current version of ROOT is 6.12/06 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.
29
30 8 Ole Hansen
h2{background:#D5D8DC}. Linux
31 1 Ole Hansen
32
h3. Red Hat Enterprise Linux (RHEL) 7, CentOS 7 and compatible
33
34
# Enable the "EPEL":https://fedoraproject.org/wiki/EPEL (Extra Packages for Linux) repository. Follow the "EPEL Quickstart instructions":https://fedoraproject.org/wiki/EPEL#Quickstart.
35 6 Ole Hansen
# Install the core ROOT package. This will install the most commonly used libraries. More packages are available if you need advanced features later.
36 1 Ole Hansen
<pre>
37
sudo yum install root
38
</pre>
39 6 Ole Hansen
# To work with ROOT from within Python 3, also install python34-root. This will automatically install python 3.4 as well:
40 1 Ole Hansen
<pre>
41
sudo yum install python34-root
42
</pre>
43
44
h3. Fedora
45
46 7 Ole Hansen
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
47 1 Ole Hansen
<pre>
48
sudo yum install root
49
sudo yum install python3-root
50
</pre>
51
52
For Fedora 20-22, CERN offers binary distributions of older versions of ROOT:
53
54 5 Ole Hansen
* "ROOT 6.08/06 for Fedora 22":https://root.cern/download/root_v6.08.06.Linux-fedora22-x86_64-gcc5.3.tar.gz
55 1 Ole Hansen
* "ROOT 6.06/08 for Fedora 21":https://root.cern/download/root_v6.06.08.Linux-fedora21-x86_64-gcc4.9.tar.gz
56
* "ROOT 6.06/08 for Fedora 20":https://root.cern/download/root_v6.06.08.Linux-fedora20-x86_64-gcc4.8.tar.gz
57
58
See [[installing a binary distribution#Installing ROOT from a CERN binary distribution]] for instructions.
59
60
h3. Ubuntu
61
62
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:
63
64
* "ROOT 6.12/06 for Ubuntu 17":https://root.cern/download/root_v6.12.06.Linux-ubuntu17-x86_64-gcc7.2.tar.gz
65
* "ROOT 6.12/06 for Ubuntu 16":https://root.cern/download/root_v6.12.06.Linux-ubuntu16-x86_64-gcc5.4.tar.gz
66
* "ROOT 6.12/06 for Ubuntu 14":https://root.cern/download/root_v6.12.06.Linux-ubuntu14-x86_64-gcc4.8.tar.gz
67
68
See [[installing a binary distribution#Installing ROOT from a CERN binary distribution]] for instructions.
69
70
h3. Arch Linux, Debian, and other Linux varieties with at least gcc 4.8
71
72
[[Build ROOT from source#Building ROOT from source]].
73
74
h3. RHEL6, CentOS 6 and older Linux distributions
75
76
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.
77
78
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.
79
80 8 Ole Hansen
h2{background:#D5D8DC}. macOS
81 1 Ole Hansen
82
For macOS/OSX 10.8-10.13, CERN offers binary distributions:
83
84
* "ROOT 6.12/06 for macOS 10.13":https://root.cern/download/root_v6.12.06.macosx64-10.13-clang90.tar.gz
85
* "ROOT 6.12/06 for macOS 10.12":https://root.cern/download/root_v6.12.06.macosx64-10.12-clang90.tar.gz
86
* "ROOT 6.10/08 for macOS 10.11":https://root.cern/download/root_v6.10.08.macosx64-10.11-clang80.tar.gz
87
* "ROOT 6.08/06 for macOS 10.10":https://root.cern/download/root_v6.08.06.macosx64-10.10-clang70.tar.gz
88
* "ROOT 6.06/08 for macOS 10.9":https://root.cern/download/root_v6.06.08.macosx64-10.9-clang60.tar.gz
89
* "ROOT 6.04/06 for macOS 10.8":https://root.cern/download/root_v6.04.06.macosx64-10.8-clang51.tar.gz
90
91
See [[installing a binary distribution#Installing ROOT from a CERN binary distribution]] for instructions.
92
93
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#Building ROOT from source]].
94
95
ROOT is available via "Homebrew":https://brew.sh (package root) and "MacPorts":https://www.macports.org (package root6). For example, you can install it from Homebrew on macOS 10.11-10.13 as follows:
96
97
Install Homebrew (skip if you have already done that before):
98
<pre>
99
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
100
</pre>
101
Follow the text prompts to complete the installation. Then, install ROOT and Python 3:
102
<pre>
103
brew install root python
104
</pre>
105
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.
106
107 8 Ole Hansen
h2{background:#D5D8DC}. Windows
108 1 Ole Hansen
109
ROOT 6 is not supported on Windows platforms. However, CERN maintains a Docker image (based on Ubuntu 16) that should allow you to run a ROOT indirectly under Windows 10 Professional 64-bit. Detailed instructions can be found on "Docker Hub":https://hub.docker.com/r/rootproject/root-ubuntu16. This is an advanced procedure.
110
111
Alternatively, you can download and install "VirtualBox":https://www.virtualbox.org and run our "CentOS 7 virtual machine image":http://hallaweb.jlab.org/data_reduc/AnaWork2017/VirtualBox, which has ROOT pre-installed. You will also find installation instructions there. Unfortunately, this requires a large download, about 30 GB of disk space for the uncompressed VM image, and at least 4 GB, preferably 8 GB, of memory on your host computer. However, you'll be independent of remote computers, similar to the Docker image.
112
113
As a second alternative, install an "X server":https://sourceforge.net/projects/xming on your Windows machine, then use "PuTTY":https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html with X forwarding enabled to connect to a Unix (or macOS) machine via ssh. At JLab, you could connect to the central ifarm machines, for example. Then run ROOT on the remote machine. This requires a fast network connection.
114
115
A third and perhaps best alternative is to run a "VNC server":http://tigervnc.org session on a Unix (or macOS) machine that you have access to and where ROOT is installed (e.g. ifarm). Then connect to that session with a "VNC client":https://www.realvnc.com/en/connect/download/viewer/windows on Windows.
116
117
h2{background:#D5D8DC}. Testing your installation
118 9 Ole Hansen
119
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 this:
120
<pre>
121
bash prompt$ root
122
   ------------------------------------------------------------
123
  | Welcome to ROOT 6.12/06                http://root.cern.ch |
124
  |                               (c) 1995-2017, The ROOT Team |
125
  | Built for macosx64                                         |
126
  | From tag v6-12-06, 9 February 2018                         |
127
  | Try '.help', '.demo', '.license', '.credits', '.quit'/'.q' |
128
   ------------------------------------------------------------
129
130
root [0] 
131
</pre>
132
133
If you installed a binary distribution or from source, you will need to run a setup script first:
134
<pre>
135
source <dir-where-you-installed-root>/bin/thisroot.sh
136
</pre>
137
or, if you are using @tcsh@
138
<pre>
139
source <dir-where-you-installed-root>/bin/thisroot.csh
140
</pre>
141
After doing so, the @root@ command should be available, and you can start ROOT as shown above.
142
143
Now you can type @.demo@ for a flashy demonstration of some of ROOT's graphics capabilities.
144
145
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@).
146
147
Sourcing the setup script is also necessary on the JLab ifarm systems. There, you can find various ROOT versions installed under @/apps/root@. An example follows.
148
149
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:
150
<pre>
151
ifarm1402.jlab.org[46] source /apps/root/6.12.04/bin/thisroot.csh
152
ifarm1402.jlab.org[47] which  root-config
153
/u/apps/root/6.12.04/root/bin/root-config
154
ifarm1402.jlab.org[48] root-config --features
155
asimage astiff builtin_afterimage builtin_ftgl builtin_gl2ps builtin_glew builtin_llvm builtin_lz4 builtin_tbb
156
builtin_unuran cling cxx11 exceptions explicitlink fftw3 gdml genvector http imt mathmore minuit2 mysql opengl
157
pch pgsql python qt roofit shared soversion sqlite ssl thread tmva unuran x11 xft xml
158
</pre>
159
Some of these items are self-explanatory, others probably obscure. Consult the ROOT documentation for a full description.
160
161
h2{background:#D5D8DC}. Python support
162
163
In the "feature list" above, you can see that "python" appears, indicating support for Python 2. We can check this further:
164
<pre>
165
ifarm1402.jlab.org[49] root-config --python-version
166
2.7
167
</pre>
168
This version of ROOT therefore has support for Python 2.7. We can try it out:
169
<pre>
170
ifarm1402.jlab.org[50] python
171
Python 2.7.12 (default, Jul  8 2016, 12:40:12) 
172
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2
173
Type "help", "copyright", "credits" or "license" for more information.
174
>>> import ROOT
175
>>> quit()
176
</pre>
177
If the @"import ROOT"@ command 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:
178
<pre>
179
ifarm1402.jlab.org[55] which python
180
/apps/bin/python
181
ifarm1402.jlab.org[56] /apps/bin/python --version
182
Python 2.7.12
183
ifarm1402.jlab.org[57] /usr/bin/python --version
184
Python 2.7.5
185
</pre>
186
In this case, do not be completely surprised if your Python/ROOT experience turns out to be a bit bumpy and be prepared to file a bug report. On your personal system, try to make sure only one version is installed.