]>
Commit | Line | Data |
---|---|---|
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> | |
6 | ||
7 | <link rev="made" href="mailto:webmaster@alisoft.cern.ch"> | |
8 | <link rel="stylesheet" href="http://www.w3.org/StyleSheets/Core/Swiss" type="text/css"> | |
9 | <STYLE type="text/css"> | |
10 | ||
11 | BODY { | |
12 | background: #FFFFFF; | |
13 | } | |
14 | ||
15 | COL, 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 | ||
23 | TABLE.wide { | |
24 | cellspacing: 100%; | |
25 | background: #FF0000 | |
26 | } | |
27 | ||
28 | </STYLE> | |
29 | </HEAD> | |
30 | ||
31 | <BODY> | |
32 | <TABLE> | |
33 | <TR> | |
34 | <TD><img src="picts/MadHatter.gif" alt="ALICE Off-line Project Logo"> | |
35 | <TD><img src="picts/installation_name.gif" alt="Installation"> | |
36 | <TD><img src="picts/AliceLogo.gif" alt="ALICE Logo"> | |
37 | </TR> | |
38 | </TABLE> | |
39 | ||
40 | <H2><A NAME="#Content">Content</A></H2> | |
41 | <UL> | |
42 | <LI><A HREF="#Prequisites">Prerequisites</A> | |
43 | <LI><A HREF="#Installation">Installation</A> | |
44 | <LI><A HREF="#Code">Code development and user environment</A> | |
45 | </UL> | |
46 | ||
47 | <HR> | |
48 | ||
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 | |
54 | compilers). It also runs on Compaq OSF1 and SunOS. We welcome feedback from | |
55 | the installation on other systems and we will be happy to consider | |
56 | modifications and corrections necessary to make the installation possible. | |
57 | ||
58 | <p> The disk space required for a full installation of AliRoot is 360MB for | |
59 | the system itself and 120MB 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"> | |
65 | gmake</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, | |
67 | if 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"> | |
69 | ftp://ftp.gnu.ai.mit.edu/pub/gnu/make</a>. <kbd>gmake</kbd> is compatible | |
70 | with 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> | |
73 | and the script <kbd>autoconf</kbd>, therefore you can copy such files from | |
74 | any 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 | |
79 | no <em>ROOT</em> installation is required. To install ROOT on your machine, | |
80 | connect to the <a href="http://root.cern.ch">web site</a> and follow the | |
81 | link <em>downloads</em>. Usually you should get the latest release, unless | |
82 | announced 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 | |
85 | called <var>root_v...tar.gz</var>uncompress and untar it (we supposed you | |
86 | downloaded the tar file in your <var>$HOME</var>): | |
87 | ||
88 | <p><kbd> | |
89 | $ gunzip root_v...tar.gz | |
90 | <br>$ cd <i>directory</i> # name of the directory where you want ROOT to sit | |
91 | <br>$ tar xvf ~/root_v...tar | |
92 | </kbd> | |
93 | ||
94 | <p> When tar ends, you will have the full root directory tree, with already | |
95 | installed 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> | |
114 | ||
115 | <ol> | |
116 | <p><li> Install <a href="http://root.cern.ch">ROOT</a> and define the | |
117 | necessary 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 | |
141 | are set correctly. | |
142 | ||
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 | |
149 | slow and network consuming way is checking out the whole cvs tree using | |
150 | cvs. Cvsup may be available soon as an alternative. | |
151 | ||
152 | <ul> | |
153 | <p><li> <em>From a tar file</em>. Tar files | |
154 | for the different releases including an up-to-date file remade | |
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 | |
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 | ||
162 | <p> The tar file(s) can to be unpacked into the ALICE directory | |
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 | |
169 | user. For example, <pre> ChangeCVSRoot asmith </pre> | |
170 | ||
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>. | |
174 | The code can be downloaded via the following commands: | |
175 | ||
176 | <p><pre> | |
177 | $ cd $ALICE | |
178 | $ setenv CVSROOT :pserver:cvs@alisoft.cern.ch:/soft/cvsroot | |
179 | $ cvs co -r Release-3-XX -d pro AliRoot | |
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 | |
184 | (here branch "Release-3-XX"). So, for a full update, including | |
185 | the automatic creation a new subdirectories, the commands are: | |
186 | <p><pre> | |
187 | $ cd $ALICE/pro | |
188 | $ setenv CVSROOT :pserver:cvs@alisoft.cern.ch:/soft/cvsroot | |
189 | $ cvs update -d | |
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 | ||
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 | ||
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 | ||
228 | root [1] .x menu.C | |
229 | </pre> | |
230 | </ol> | |
231 | ||
232 | <h2><A HREF="#Content" NAME="Code">Code development and user environment</A></h2> | |
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 | |
236 | libraries load path, and the <var>$ALICE_ROOT/bin/tgt_$ALICE_TARGET</var> | |
237 | directory is in the PATH variable. This means that the command | |
238 | <kbd>aliroot</kbd> will in fact correspond to the file | |
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 | |
242 | modify one or more directories, this arrangement becomes inefficient | |
243 | because if a local copy of one of the shared libraries is remade, the | |
244 | linker will always find the official unmodified one that sits in the above | |
245 | directory before the local one in the load library path. Moreover, and | |
246 | unless the full path is specified, the local version of the <b>aliroot</b> | |
247 | executable 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 | |
251 | performed. The remote cvs server use and setup is explained in the <a | |
252 | href="../development.html">code development</a> section. | |
253 | ||
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> | |
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> | |
276 | <th>$ rm lib | |
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 | |
281 | <td>remove bin, we need a local copy of the <var>aliroot</var> | |
282 | executable | |
283 | <tr align=left> | |
284 | <th>$ mkdir bin | |
285 | <td>make a local bin directory | |
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 | |
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> | |
298 | <th>$ cvs co -r Release-3-XX TPC | |
299 | <td>get from the cvs server the release version of the TPC files to be | |
300 | modified | |
301 | <tr align=left> | |
302 | <th>$ cvs co -r Release-3-XX ALIROOT | |
303 | <td>get from the server the release version of the ALIROOT files to recreate | |
304 | the executable | |
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> | |
312 | <th>$ ln -s $ALICE_ROOT/lib/tgt_$ALICE_TARGET/* ./ | |
313 | <td>link all libraries here | |
314 | <tr align=left> | |
315 | <th>$ rm libTPC.sl (on HP) | |
316 | <br>$ rm libTPC.so (on the other systems) | |
317 | <td>remove link to TPC library, we need a real one | |
318 | <tr align=left> | |
319 | <th>$ changeRoot $HOME/AliRoot | |
320 | <td>change the AliRoot root to $HOME/AliRoot via the <em>changeRoot</em> command | |
321 | <tr align=left> | |
322 | <th>$ rehash | |
323 | <td>make sure that the new PATH is taken into account by the shell | |
324 | <tr align=center> | |
325 | <th colspan=2> | |
326 | <hr><br> | |
327 | <font size=+1>Normal development cycle</font> | |
328 | <br><hr> | |
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 | |
356 | <tr align=center> | |
357 | <th colspan=2> | |
358 | <hr> | |
359 | </table> | |
360 | ||
361 | <p>Steps 1-5 are the normal development cycle after the first pass through the | |
362 | procedure. | |
363 | ||
364 | <hr> | |
365 | <address> | |
366 | <script language="JavaScript"> | |
367 | document.write("Last modified "+ document.lastModified +" . ") | |
368 | // end of script --> | |
369 | </script> | |
370 | Please report problems to | |
371 | <a href="mailto:webmaster@alisoft.cern.ch"> webmaster@alisoft.cern.ch</a> | |
372 | </address> | |
373 | </BODY> | |
374 | </HTML> |