Fix for #88344
[u/mrichter/AliRoot.git] / html / installation.html
CommitLineData
14c31136 1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
2 "http://www.w3.org/TR/REC-html40/loose.dtd">
3<HTML>
4<HEAD>
5<TITLE>Installation</TITLE>
5023a744 6
56993321 7<link rev="made" href="mailto:webmaster@alisoft.cern.ch">
5023a744 8<link rel="stylesheet" href="http://www.w3.org/StyleSheets/Core/Swiss" type="text/css">
9<STYLE type="text/css">
10
14c31136 11BODY {
12 background: #FFFFFF;
13 }
14
15COL, COLGROUP, TABLE, TBODY, TD, TR {
16 color: black;
17 text-decoration: none;
18 border-color: black;
19 border-style: none;
20 background: #FFFFFF;
21 }
22
5023a744 23TABLE.wide {
24 cellspacing: 100%;
25 background: #FF0000
26 }
27
14c31136 28</STYLE>
14c31136 29</HEAD>
30
5023a744 31<BODY>
14c31136 32<TABLE>
33<TR>
34<TD><img src="picts/MadHatter.gif" alt="ALICE Off-line Project Logo">
87ad6e14 35<TD><img src="picts/installation_name.gif" alt="Installation">
14c31136 36<TD><img src="picts/AliceLogo.gif" alt="ALICE Logo">
37</TR>
38</TABLE>
39
4c505702 40<H2><A NAME="#Content">Content</A></H2>
41<UL>
b813c727 42<LI><A HREF="#Prequisites">Prerequisites</A>
4c505702 43<LI><A HREF="#Installation">Installation</A>
44<LI><A HREF="#Code">Code development and user environment</A>
45</UL>
46
47<HR>
48
b813c727 49<h2><A HREF="#Content" NAME="Prerequisites">Prerequisites</A></h2>
50
51<h3>Environment</h3>
52
53<p> The code is actively maintained on Linux and HP (both CC and aCC
54compilers). It also runs on Compaq OSF1 and SunOS. We welcome feedback from
55the installation on other systems and we will be happy to consider
56modifications and corrections necessary to make the installation possible.
57
241c61af 58<p> The disk space required for a full installation of AliRoot is 360MB for
59the system itself and 120MB for the ROOT system.
b813c727 60
61<h3>gmake</h3>
62
63<p> The installation is performed via the <kbd>
64<a href="http://www.gnu.ai.mit.edu/manual/make-3.77/make.html">
65gmake</a></kbd> program. <kbd>gmake</kbd> is the
66<a href="http://www.gnu.ai.mit.edu">GNU</a> version of make, it is free and,
67if missing on your machine, it can be loaded from the GNU Internet site
68<a href="ftp://ftp.gnu.ai.mit.edu/pub/gnu/make">
69ftp://ftp.gnu.ai.mit.edu/pub/gnu/make</a>. <kbd>gmake</kbd> is compatible
70with the standard UNIX <kbd>make</kbd> and on the CERN ion WGS
71<kbd>make</kbd> is aliased to <kbd>gmake</kbd>. The only files you need for
72<kbd>gmake</kbd> are the executable <kbd>gmake</kbd>
73and the script <kbd>autoconf</kbd>, therefore you can copy such files from
74any site in a directory in your path.
75
76<h3>ROOT</h3>
77
78<p> <em>ROOT</em> is available for many platforms, therefore in most cases
79no <em>ROOT</em> installation is required. To install ROOT on your machine,
80connect to the <a href="http://root.cern.ch">web site</a> and follow the
81link <em>downloads</em>. Usually you should get the latest release, unless
82announced differently by the news of the Off-line Project.
83
84<p> All you need to do is download the compressed tar file, that usually is
85called <var>root_v...tar.gz</var>uncompress and untar it (we supposed you
86downloaded the tar file in your <var>$HOME</var>):
87
88<p><kbd>
89$ gunzip root_v...tar.gz
57386c20 90<br>$ cd <i>directory</i> # name of the directory where you want ROOT to sit
91<br>$ tar xvf ~/root_v...tar
b813c727 92</kbd>
4c505702 93
b813c727 94<p> When tar ends, you will have the full root directory tree, with already
95installed libraries for your platform.
96
97<p> The following shell variables should be defined in the login scripts:
98
99<p><table align=centre borders=no>
100<tr><th align=left>variable</th><th align=left>value</th></tr>
101<tr><td width=50%>ROOTSYS </td><td> <i>directory</i>/root
102<tr><td colspan=2><i><center>on all systems but HP-UX</center></i></td></tr>
103<tr><td>LD_LIBRARY_PATH</td>
104<td>$LD_LIBRARY_PATH\:$ROOTSYS/lib</td></tr>
105<tr><td colspan=2><i><center>on HP-UX</center></i></td></tr>
106<tr><td>SHLIB_PATH</td>
107<td>$SHLIB_PATH\:$ROOTSYS/lib</td></tr>
108<tr><td>PATH</td>
109<td> $PATH\:$ROOTSYS/bin </td></tr>
110</table>
111
112
113<h2><A HREF="#Content" NAME="Installation">Installation</A></h2>
14c31136 114
115<ol>
116<p><li> Install <a href="http://root.cern.ch">ROOT</a> and define the
117necessary variables correctly.
118
119<p><li> Decide where the code will reside (from here on <i>directory</i>).
120
121<p><li>Define the following global variables in the login script
122
123<p><table align=centre borders=no>
124<tr><th align=left>variable</th><th align=left>value</th></tr>
125<tr><td width=30%>ALICE </td><td> <i>directory</i>
126<tr><td>ALICE_LEVEL </td><td> pro </td></tr>
127<tr><td>ALICE_ROOT </td><td> $ALICE/$ALICE_LEVEL </td></tr>
128<tr><td>ALICE_TARGET </td><td> `uname`
129(i.e. result of the Unix <b>uname</b> command)</td></tr>
130<tr><td colspan=2><i><center>on all systems but HP-UX</center></i></td></tr>
131<tr><td>LD_LIBRARY_PATH</td>
132<td>$ALICE_ROOT/lib/tgt_${ALICE_TARGET}\:$LD_LIBRARY_PATH</td></tr>
133<tr><td colspan=2><i><center>on HP-UX</center></i></td></tr>
134<tr><td>SHLIB_PATH</td>
135<td>$ALICE_ROOT/lib/tgt_${ALICE_TARGET}\:$SHLIB_PATH</td></tr>
136<tr><td>PATH</td>
137<td> $PATH\:$ALICE_ROOT/bin/tgt_${ALICE_TARGET} </td></tr>
138</table>
139
140<p>At this point you should logout, login again and check that the symbols
141are set correctly.
142
2b6b41be 143<p><li> Retrieve the AliRoot code. This code is available under 3 main
144 versions (old, pro and new). Check <a href="../releases.html"> the
145 Releases page </a> to select the appropriate version and get
146 the corresponding CVS Tag.
147 There are two ways to retrieve the code: the
148 preferred way consists in retrieving a tar file on the ftp server and the
dfd3e71f 149 slow and network consuming way is checking out the whole cvs tree using
2b6b41be 150 cvs. Cvsup may be available soon as an alternative.
78fbaa94 151
14c31136 152<ul>
241c61af 153<p><li> <em>From a tar file</em>. Tar files
78fbaa94 154 for the different releases including an up-to-date file remade
241c61af 155 every night are available on the
156 <a href="http://AliSoft.cern.ch/offline/download/offline/">
157 Web server</a>. The tar files include the
78fbaa94 158 "CVS" subdirectories for the anonymous cvs user (login "cvs"). So after
159 getting the full tar file, it is possible to incrementally update
160 the code using cvs.
161
dfd3e71f 162 <p> The tar file(s) can to be unpacked into the ALICE directory
78fbaa94 163 via the command:
164
165 <p><pre>$ gtar xvfz V3.XX.tar.gz</pre>
166
167 <p> A script <a href="ftp://alisoft.cern.ch/pub/misc/">changeCVSRoot</a>
168 is available to convert a CVS tree under user "cvs" to another
dfd3e71f 169 user. For example, <pre> ChangeCVSRoot asmith </pre>
78fbaa94 170
dfd3e71f 171<p><li> <em>From cvs remote cvs server</em>. The setup for the access
172 to the remote cvs server is described in the
173 <A HREF="/offline/development.html#Code">Code Development section</A>.
225aa380 174 The code can be downloaded via the following commands:
175
14c31136 176<p><pre>
177$ cd $ALICE
225aa380 178$ setenv CVSROOT :pserver:cvs@alisoft.cern.ch:/soft/cvsroot
2b6b41be 179$ cvs co -r Release-3-XX -d pro AliRoot
225aa380 180</pre>
181
182<p><li> <em> Update </em> In both cases running a cvs update command
183 will update the latest changes to the code in the selected branch
2b6b41be 184 (here branch "Release-3-XX"). So, for a full update, including
225aa380 185 the automatic creation a new subdirectories, the commands are:
186<p><pre>
187$ cd $ALICE/pro
56993321 188$ setenv CVSROOT :pserver:cvs@alisoft.cern.ch:/soft/cvsroot
225aa380 189$ cvs update -d
14c31136 190</pre>
191
192</ul>
193
194<p><li>install the CERN library part
195
196<p><pre>
197$ cd $ALICE_ROOT
198$ gmake cernlibs
199</pre>
200
201<p><li>Install the ALICE specific software
202
203<p><pre>
204$ cd $ALICE_ROOT
205$ gmake
206</pre>
207
208<p><li>Copy the file $ALICE_ROOT/.rootrc to your home directory
209
29cbfde8 210<p><li>For users with c-like shells, update your search path:
211
212<p>
213<pre>
214$ rehash
215</pre>
216
217<p>This usually has to be done only once, after having defined the new PATH.
218
14c31136 219<p><li>Change to your home directory and run the code
220
221<p>
222<pre>
223$ cd
224$ aliroot
225
226<output from aliroot>
227
228root [1] .x menu.C
229</pre>
230</ol>
231
4c505702 232<h2><A HREF="#Content" NAME="Code">Code development and user environment</A></h2>
87ad6e14 233
234<p>If the ALICE environment is set up correctly, the
235<var>$ALICE_ROOT/lib/tgt_$ALICE_TARGET</var> directory is in the shared
236libraries load path, and the <var>$ALICE_ROOT/bin/tgt_$ALICE_TARGET</var>
481bb6ef 237directory is in the PATH variable. This means that the command
238<kbd>aliroot</kbd> will in fact correspond to the file
87ad6e14 239<var>$ALICE_ROOT/bin/tgt_$ALICE_TARGET/aliroot</var>.
240
241<p>This is convenient for the normal user, but as soon as the user wants to
242modify one or more directories, this arrangement becomes inefficient
243because if a local copy of one of the shared libraries is remade, the
244linker will always find the official unmodified one that sits in the above
245directory before the local one in the load library path. Moreover, and
246unless the full path is specified, the local version of the <b>aliroot</b>
247executable will be ignored and the official version executed.
248
249<p>Therefore in order to develop one or more packages locally
250(let's say the TPC) and make modifications, the following steps should be
56993321 251performed. The remote cvs server use and setup is explained in the <a
252href="../development.html">code development</a> section.
87ad6e14 253
5023a744 254<p><table id="wide" cellspacing=10%>
255 <tr align=center>
256 <th colspan=2>
257 <hr><br>
258 <font size=+1>Preparation of the environment</font>
259 <br><hr>
87ad6e14 260 <tr align=left>
261 <th width=30%>$ mkdir AliRoot
262 <td width=50%>create the working directory
263 <tr align=left>
264 <th>$ cd AliRoot
265 <td>set default to it
266 <tr align=left>
267 <th>$ mkdir pro
268 <td>create pro subdirectory
269 <tr align=left>
270 <th>$ cd pro
271 <td>set default to it
272 <tr align=left>
273 <th>$ ln -s $ALICE_ROOT/* ./
274 <td>link all files here
275 <tr align=left>
481bb6ef 276 <th>$ rm lib
87ad6e14 277 <td>remove link for library, we need a local file here to containing the new
278 TPC library
279 <tr align=left>
280 <th>$ rm bin
481bb6ef 281 <td>remove bin, we need a local copy of the <var>aliroot</var>
282 executable
57386c20 283 <tr align=left>
94ce3382 284 <th>$ mkdir bin
285 <td>make a local bin directory
481bb6ef 286 <tr align=left>
287 <th>$ rm CVS
288 <td>remove the link to the CVS directory, we need a local one
289 to check-out files
87ad6e14 290 <tr align=left>
291 <th>$ rm TPC
292 <td>remove link for TPC subdirectory, we need the real files here
293 <tr align=left>
294 <th>$ rm ALIROOT
295 <td>remove link to ALIROOT subdirectory, may be this is not really necessary
296 on all systems, but we do it just to be on the safe side
297 <tr align=left>
2b6b41be 298 <th>$ cvs co -r Release-3-XX TPC
481bb6ef 299 <td>get from the cvs server the release version of the TPC files to be
300 modified
87ad6e14 301 <tr align=left>
2b6b41be 302 <th>$ cvs co -r Release-3-XX ALIROOT
481bb6ef 303 <td>get from the server the release version of the ALIROOT files to recreate
304 the executable
87ad6e14 305 <tr align=left>
306 <th>$ mkdir -p lib/tgt_$ALICE_TARGET
307 <td>create library directory
308 <tr align=left>
309 <th>$ cd lib/tgt_$ALICE_TARGET
310 <td>set default to the lib directory
311 <tr align=left>
94ce3382 312 <th>$ ln -s $ALICE_ROOT/lib/tgt_$ALICE_TARGET/* ./
87ad6e14 313 <td>link all libraries here
314 <tr align=left>
5023a744 315 <th>$ rm libTPC.sl (on HP)
316 <br>$ rm libTPC.so (on the other systems)
87ad6e14 317 <td>remove link to TPC library, we need a real one
318 <tr align=left>
319 <th>$ changeRoot $HOME/AliRoot
5023a744 320 <td>change the AliRoot root to $HOME/AliRoot via the <em>changeRoot</em> command
87ad6e14 321 <tr align=left>
322 <th>$ rehash
323 <td>make sure that the new PATH is taken into account by the shell
5023a744 324 <tr align=center>
325 <th colspan=2>
326 <hr><br>
327 <font size=+1>Normal development cycle</font>
328 <br><hr>
87ad6e14 329 <tr align=left>
330 <th>$ cd $ALICE_ROOT/TPC
331 <td>(1) set default to TPC directory
332 <tr align=left>
333 <th>$ make macroclean
334 <td>clean up all objects
335 <tr align=left>
336 <th>$ emacs AliTPCv1.cxx
337 <td>(2) edit all the files...
338 <tr align=left>
339 <th>$ make
340 <td>(3) recreate ../lib/libTPC.sl
341 <tr align=left>
342 <th>$ cd ../ALIROOT
343 <td>set default to ALIROOT directory
344 <tr align=left>
345 <th>$ make macroclean
346 <td>clean up object files
347 <tr align=left>
348 <th>$ make
349 <td>make new executable
350 <tr align=left>
351 <th>$ cd <em>directory</em>
352 <td>(4) set default elsewhere
353 <tr align=left>
354 <th>$ aliroot
355 <td>(5) run aliroot
5023a744 356 <tr align=center>
357 <th colspan=2>
358 <hr>
87ad6e14 359</table>
360
361<p>Steps 1-5 are the normal development cycle after the first pass through the
362procedure.
363
14c31136 364<hr>
365<address>
366 <script language="JavaScript">
225aa380 367 document.write("Last modified "+ document.lastModified +" . ")
14c31136 368 // end of script -->
369 </script>
225aa380 370Please report problems to
371<a href="mailto:webmaster@alisoft.cern.ch"> webmaster@alisoft.cern.ch</a>
14c31136 372</address>
373</BODY>
374</HTML>