Same comment as before, but now done correctly I hope (sorry it's Saturday evening)
[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
14c31136 7<link rev="made" href="mailto:Federico.Carminati@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
58<p> The disk space required for a full installation of AliRoot is 200MB for
59the system itself and 60MB for the ROOT system.
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
78fbaa94 143<p><li> Retrieve the AliRoot code. There are two ways to do this: the
144 preferred way is retrieving a tar file on the ftp server and the
dfd3e71f 145 slow and network consuming way is checking out the whole cvs tree using
146 cvs. cvsup will be available soon.
78fbaa94 147
14c31136 148<ul>
78fbaa94 149<p><li> <em>From a tar file</em>. This is the preferred way. Tar files
150 for the different releases including an up-to-date file remade
151 every night are available on the ftp server
152 <a href="ftp://alisoft.cern.ch/pub/offline">
153 ftp://alisoft.cern.ch/pub/offline</a>. The tar files include the
154 "CVS" subdirectories for the anonymous cvs user (login "cvs"). So after
155 getting the full tar file, it is possible to incrementally update
156 the code using cvs.
157
dfd3e71f 158 <p> The tar file(s) can to be unpacked into the ALICE directory
78fbaa94 159 via the command:
160
161 <p><pre>$ gtar xvfz V3.XX.tar.gz</pre>
162
163 <p> A script <a href="ftp://alisoft.cern.ch/pub/misc/">changeCVSRoot</a>
164 is available to convert a CVS tree under user "cvs" to another
dfd3e71f 165 user. For example, <pre> ChangeCVSRoot asmith </pre>
78fbaa94 166
dfd3e71f 167<p><li> <em>From cvs remote cvs server</em>. The setup for the access
168 to the remote cvs server is described in the
169 <A HREF="/offline/development.html#Code">Code Development section</A>.
225aa380 170 The code can be downloaded via the following commands:
171
14c31136 172<p><pre>
173$ cd $ALICE
225aa380 174$ setenv CVSROOT :pserver:cvs@alisoft.cern.ch:/soft/cvsroot
175$ cvs login # (passwd "cvs")
176$ cvs co -r Release-3-03 -d pro AliRoot
177</pre>
178
179<p><li> <em> Update </em> In both cases running a cvs update command
180 will update the latest changes to the code in the selected branch
181 (here branch "Release-3-03"). So, for a full update, including
182 the automatic creation a new subdirectories, the commands are:
183<p><pre>
184$ cd $ALICE/pro
185$ cvs update -d
14c31136 186</pre>
187
188</ul>
189
190<p><li>install the CERN library part
191
192<p><pre>
193$ cd $ALICE_ROOT
194$ gmake cernlibs
195</pre>
196
197<p><li>Install the ALICE specific software
198
199<p><pre>
200$ cd $ALICE_ROOT
201$ gmake
202</pre>
203
204<p><li>Copy the file $ALICE_ROOT/.rootrc to your home directory
205
29cbfde8 206<p><li>For users with c-like shells, update your search path:
207
208<p>
209<pre>
210$ rehash
211</pre>
212
213<p>This usually has to be done only once, after having defined the new PATH.
214
14c31136 215<p><li>Change to your home directory and run the code
216
217<p>
218<pre>
219$ cd
220$ aliroot
221
222<output from aliroot>
223
224root [1] .x menu.C
225</pre>
226</ol>
227
4c505702 228<h2><A HREF="#Content" NAME="Code">Code development and user environment</A></h2>
87ad6e14 229
230<p>If the ALICE environment is set up correctly, the
231<var>$ALICE_ROOT/lib/tgt_$ALICE_TARGET</var> directory is in the shared
232libraries load path, and the <var>$ALICE_ROOT/bin/tgt_$ALICE_TARGET</var>
481bb6ef 233directory is in the PATH variable. This means that the command
234<kbd>aliroot</kbd> will in fact correspond to the file
87ad6e14 235<var>$ALICE_ROOT/bin/tgt_$ALICE_TARGET/aliroot</var>.
236
237<p>This is convenient for the normal user, but as soon as the user wants to
238modify one or more directories, this arrangement becomes inefficient
239because if a local copy of one of the shared libraries is remade, the
240linker will always find the official unmodified one that sits in the above
241directory before the local one in the load library path. Moreover, and
242unless the full path is specified, the local version of the <b>aliroot</b>
243executable will be ignored and the official version executed.
244
245<p>Therefore in order to develop one or more packages locally
246(let's say the TPC) and make modifications, the following steps should be
247performed. We suppose here that the remote cvs server has been setup correctly
4c505702 248as explained in the <a href="../development.html">code development</a> section.
87ad6e14 249
5023a744 250<p><table id="wide" cellspacing=10%>
251 <tr align=center>
252 <th colspan=2>
253 <hr><br>
254 <font size=+1>Preparation of the environment</font>
255 <br><hr>
87ad6e14 256 <tr align=left>
257 <th width=30%>$ mkdir AliRoot
258 <td width=50%>create the working directory
259 <tr align=left>
260 <th>$ cd AliRoot
261 <td>set default to it
262 <tr align=left>
263 <th>$ mkdir pro
264 <td>create pro subdirectory
265 <tr align=left>
266 <th>$ cd pro
267 <td>set default to it
268 <tr align=left>
269 <th>$ ln -s $ALICE_ROOT/* ./
270 <td>link all files here
271 <tr align=left>
481bb6ef 272 <th>$ rm lib
87ad6e14 273 <td>remove link for library, we need a local file here to containing the new
274 TPC library
275 <tr align=left>
276 <th>$ rm bin
481bb6ef 277 <td>remove bin, we need a local copy of the <var>aliroot</var>
278 executable
57386c20 279 <tr align=left>
94ce3382 280 <th>$ mkdir bin
281 <td>make a local bin directory
481bb6ef 282 <tr align=left>
283 <th>$ rm CVS
284 <td>remove the link to the CVS directory, we need a local one
285 to check-out files
87ad6e14 286 <tr align=left>
287 <th>$ rm TPC
288 <td>remove link for TPC subdirectory, we need the real files here
289 <tr align=left>
290 <th>$ rm ALIROOT
291 <td>remove link to ALIROOT subdirectory, may be this is not really necessary
292 on all systems, but we do it just to be on the safe side
293 <tr align=left>
225aa380 294 <th>$ cvs co -r Release-3-02 TPC
481bb6ef 295 <td>get from the cvs server the release version of the TPC files to be
296 modified
87ad6e14 297 <tr align=left>
225aa380 298 <th>$ cvs co -r Release-3-02 ALIROOT
481bb6ef 299 <td>get from the server the release version of the ALIROOT files to recreate
300 the executable
87ad6e14 301 <tr align=left>
302 <th>$ mkdir -p lib/tgt_$ALICE_TARGET
303 <td>create library directory
304 <tr align=left>
305 <th>$ cd lib/tgt_$ALICE_TARGET
306 <td>set default to the lib directory
307 <tr align=left>
94ce3382 308 <th>$ ln -s $ALICE_ROOT/lib/tgt_$ALICE_TARGET/* ./
87ad6e14 309 <td>link all libraries here
310 <tr align=left>
5023a744 311 <th>$ rm libTPC.sl (on HP)
312 <br>$ rm libTPC.so (on the other systems)
87ad6e14 313 <td>remove link to TPC library, we need a real one
314 <tr align=left>
315 <th>$ changeRoot $HOME/AliRoot
5023a744 316 <td>change the AliRoot root to $HOME/AliRoot via the <em>changeRoot</em> command
87ad6e14 317 <tr align=left>
318 <th>$ rehash
319 <td>make sure that the new PATH is taken into account by the shell
5023a744 320 <tr align=center>
321 <th colspan=2>
322 <hr><br>
323 <font size=+1>Normal development cycle</font>
324 <br><hr>
87ad6e14 325 <tr align=left>
326 <th>$ cd $ALICE_ROOT/TPC
327 <td>(1) set default to TPC directory
328 <tr align=left>
329 <th>$ make macroclean
330 <td>clean up all objects
331 <tr align=left>
332 <th>$ emacs AliTPCv1.cxx
333 <td>(2) edit all the files...
334 <tr align=left>
335 <th>$ make
336 <td>(3) recreate ../lib/libTPC.sl
337 <tr align=left>
338 <th>$ cd ../ALIROOT
339 <td>set default to ALIROOT directory
340 <tr align=left>
341 <th>$ make macroclean
342 <td>clean up object files
343 <tr align=left>
344 <th>$ make
345 <td>make new executable
346 <tr align=left>
347 <th>$ cd <em>directory</em>
348 <td>(4) set default elsewhere
349 <tr align=left>
350 <th>$ aliroot
351 <td>(5) run aliroot
5023a744 352 <tr align=center>
353 <th colspan=2>
354 <hr>
87ad6e14 355</table>
356
357<p>Steps 1-5 are the normal development cycle after the first pass through the
358procedure.
359
14c31136 360<hr>
361<address>
362 <script language="JavaScript">
225aa380 363 document.write("Last modified "+ document.lastModified +" . ")
14c31136 364 // end of script -->
365 </script>
225aa380 366Please report problems to
367<a href="mailto:webmaster@alisoft.cern.ch"> webmaster@alisoft.cern.ch</a>
14c31136 368</address>
369</BODY>
370</HTML>