1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
2 "http://www.w3.org/TR/REC-html40/loose.dtd">
5 <TITLE>Installation</TITLE>
6 <link rev="made" href="mailto:Federico.Carminati@cern.ch">
12 COL, COLGROUP, TABLE, TBODY, TD, TR {
14 text-decoration: none;
21 <link rel="stylesheet" href="http://www.w3.org/StyleSheets/Core/Swiss" type="text/css">
24 <BODY background=#FFFFFF>
27 <TD><img src="picts/MadHatter.gif" alt="ALICE Off-line Project Logo">
28 <TD><img src="picts/installation_name.gif" alt="Installation">
29 <TD><img src="picts/AliceLogo.gif" alt="ALICE Logo">
36 <p><li> Install <a href="http://root.cern.ch">ROOT</a> and define the
37 necessary variables correctly.
39 <p><li> Decide where the code will reside (from here on <i>directory</i>).
41 <p><li>Define the following global variables in the login script
43 <p><table align=centre borders=no>
44 <tr><th align=left>variable</th><th align=left>value</th></tr>
45 <tr><td width=30%>ALICE </td><td> <i>directory</i>
46 <tr><td>ALICE_LEVEL </td><td> pro </td></tr>
47 <tr><td>ALICE_ROOT </td><td> $ALICE/$ALICE_LEVEL </td></tr>
48 <tr><td>ALICE_TARGET </td><td> `uname`
49 (i.e. result of the Unix <b>uname</b> command)</td></tr>
50 <tr><td colspan=2><i><center>on all systems but HP-UX</center></i></td></tr>
51 <tr><td>LD_LIBRARY_PATH</td>
52 <td>$ALICE_ROOT/lib/tgt_${ALICE_TARGET}\:$LD_LIBRARY_PATH</td></tr>
53 <tr><td colspan=2><i><center>on HP-UX</center></i></td></tr>
54 <tr><td>SHLIB_PATH</td>
55 <td>$ALICE_ROOT/lib/tgt_${ALICE_TARGET}\:$SHLIB_PATH</td></tr>
57 <td> $PATH\:$ALICE_ROOT/bin/tgt_${ALICE_TARGET} </td></tr>
60 <p>At this point you should logout, login again and check that the symbols
63 <p><li> Retrieve the AliRoot code. There are two ways to do this:
66 <p><li> <em>From a tar file</em>. This is the preferred way for those who
67 do not have an internet connection to the <em>cvs</em> server from the
68 machine where the code has to be installed. The <a
69 href="ftp://pcepaip01.cern.ch/pub">files</a> containing the latest release
70 should be brought on the target machine. Three files are offered:
72 <p><table align=center borders=no>
73 <tr><th align=left>File<th align=left>Content</tr>
74 <tr><td align=center colspan=2><em>Either</em></tr>
75 <tr><td>AliOffline<i>MM.mm-pp</i>.tar.gz
76 <td>Code and the data files of ALICE Off-line</tr>
77 <tr><td align=center colspan=2><em>Or</em></tr>
78 <tr><td>AliLibs<i>MM.mm-pp</i>.tar.gz
79 <td>Code and the data files of the auxiliary libraries</tr>
80 <tr><td>AliRoot<i>MM.mm-pp</i>.tar.gz
81 <td>All the code and the data files of the AliRoot system</tr>
84 <p> <i>MM.mm-pp</i> is the number of the latest <i>M</i>ajor and
85 <i>m</i>inor version and the <i>p</i>atch number. Please refer to the
86 README file found in this directory for further information on file
87 content. The file(s) have to be unpacked into the $ALICE directory via the
90 <p><pre>$ gtar xvfz Ali[...].tar.gz</pre>
93 <p><li> <em>From cvs remote cvs server</em>. This method has the advantage
94 that new patches can be incrementally retrieved and installed via internet.
95 At the moment the problem is that the version of cvs currently installed at
96 CERN (1.09) does not support well binary files. Therefore some data files
97 will be missing with this download mechanism, and these will have to be
98 fetched <em>by hand</em>. The setup of the access to the remote cvs server
99 is described in the Code Development section. The
100 code is dowloaded via the command:
104 $ cvsa co -d pro AliRoot
109 <p><li>install the CERN library part
116 <p><li>Install the ALICE specific software
123 <p><li>Copy the file $ALICE_ROOT/.rootrc to your home directory
125 <p><li>Change to your home directory and run the code
132 <output from aliroot>
138 <h2>Code development and user environment</h2>
140 <p>If the ALICE environment is set up correctly, the
141 <var>$ALICE_ROOT/lib/tgt_$ALICE_TARGET</var> directory is in the shared
142 libraries load path, and the <var>$ALICE_ROOT/bin/tgt_$ALICE_TARGET</var>
143 directory is in the PATH variable. This means that the command aliroot will
144 in fact correspond to the file
145 <var>$ALICE_ROOT/bin/tgt_$ALICE_TARGET/aliroot</var>.
147 <p>This is convenient for the normal user, but as soon as the user wants to
148 modify one or more directories, this arrangement becomes inefficient
149 because if a local copy of one of the shared libraries is remade, the
150 linker will always find the official unmodified one that sits in the above
151 directory before the local one in the load library path. Moreover, and
152 unless the full path is specified, the local version of the <b>aliroot</b>
153 executable will be ignored and the official version executed.
155 <p>Therefore in order to develop one or more packages locally
156 (let's say the TPC) and make modifications, the following steps should be
157 performed. We suppose here that the remote cvs server has been setup correctly
158 as explained in the <a href="management.html">code management</a> section.
162 <th width=30%>$ mkdir AliRoot
163 <td width=50%>create the working directory
166 <td>set default to it
169 <td>create pro subdirectory
172 <td>set default to it
174 <th>$ ln -s $ALICE_ROOT/* ./
175 <td>link all files here
178 <td>remove link for library, we need a local file here to containing the new
182 <td>remove link for bin directory, we need it to rebuild <b>aliroot</b> executable
185 <td>remove link for TPC subdirectory, we need the real files here
188 <td>remove link to ALIROOT subdirectory, may be this is not really necessary
189 on all systems, but we do it just to be on the safe side
192 <td>get from the cvs server the TPC files to be modified
194 <th>$ cvsa co ALIROOT
195 <td>get from the server the ALIROOT files to recreate the executable
197 <th>$ mkdir -p lib/tgt_$ALICE_TARGET
198 <td>create library directory
200 <th>$ cd lib/tgt_$ALICE_TARGET
201 <td>set default to the lib directory
203 <th>$ ln -s $ALICE_ROOT/lib/* ./
204 <td>link all libraries here
207 <td>remove link to TPC library, we need a real one
209 <th>$ changeRoot $HOME/AliRoot
210 <td>change the AliRoot root to $HOME/AliRoot
213 <td>make sure that the new PATH is taken into account by the shell
215 <th>$ cd $ALICE_ROOT/TPC
216 <td>(1) set default to TPC directory
218 <th>$ make macroclean
219 <td>clean up all objects
221 <th>$ emacs AliTPCv1.cxx
222 <td>(2) edit all the files...
225 <td>(3) recreate ../lib/libTPC.sl
228 <td>set default to ALIROOT directory
230 <th>$ make macroclean
231 <td>clean up object files
234 <td>make new executable
236 <th>$ cd <em>directory</em>
237 <td>(4) set default elsewhere
243 <p>Steps 1-5 are the normal development cycle after the first pass through the
248 <script language="JavaScript">
249 document.write("Last modified "+ document.lastModified)
252 by <a href="mailto:Federico.Carminati@cern.ch">Federico Carminati</a>