]>
Commit | Line | Data |
---|---|---|
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 | 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 | ||
5023a744 | 23 | TABLE.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> | |
42 | <LI><A HREF="#Installation">Installation</A> | |
43 | <LI><A HREF="#Code">Code development and user environment</A> | |
44 | </UL> | |
45 | ||
46 | <HR> | |
47 | ||
48 | <h2><A HREF="#Content" NAME="Installation">Installation</A></h2> | |
49 | ||
14c31136 | 50 | |
51 | <ol> | |
52 | <p><li> Install <a href="http://root.cern.ch">ROOT</a> and define the | |
53 | necessary variables correctly. | |
54 | ||
55 | <p><li> Decide where the code will reside (from here on <i>directory</i>). | |
56 | ||
57 | <p><li>Define the following global variables in the login script | |
58 | ||
59 | <p><table align=centre borders=no> | |
60 | <tr><th align=left>variable</th><th align=left>value</th></tr> | |
61 | <tr><td width=30%>ALICE </td><td> <i>directory</i> | |
62 | <tr><td>ALICE_LEVEL </td><td> pro </td></tr> | |
63 | <tr><td>ALICE_ROOT </td><td> $ALICE/$ALICE_LEVEL </td></tr> | |
64 | <tr><td>ALICE_TARGET </td><td> `uname` | |
65 | (i.e. result of the Unix <b>uname</b> command)</td></tr> | |
66 | <tr><td colspan=2><i><center>on all systems but HP-UX</center></i></td></tr> | |
67 | <tr><td>LD_LIBRARY_PATH</td> | |
68 | <td>$ALICE_ROOT/lib/tgt_${ALICE_TARGET}\:$LD_LIBRARY_PATH</td></tr> | |
69 | <tr><td colspan=2><i><center>on HP-UX</center></i></td></tr> | |
70 | <tr><td>SHLIB_PATH</td> | |
71 | <td>$ALICE_ROOT/lib/tgt_${ALICE_TARGET}\:$SHLIB_PATH</td></tr> | |
72 | <tr><td>PATH</td> | |
73 | <td> $PATH\:$ALICE_ROOT/bin/tgt_${ALICE_TARGET} </td></tr> | |
74 | </table> | |
75 | ||
76 | <p>At this point you should logout, login again and check that the symbols | |
77 | are set correctly. | |
78 | ||
79 | <p><li> Retrieve the AliRoot code. There are two ways to do this: | |
80 | ||
81 | <ul> | |
82 | <p><li> <em>From a tar file</em>. This is the preferred way for those who | |
83 | do not have an internet connection to the <em>cvs</em> server from the | |
84 | machine where the code has to be installed. The <a | |
85 | href="ftp://pcepaip01.cern.ch/pub">files</a> containing the latest release | |
86 | should be brought on the target machine. Three files are offered: | |
87 | ||
88 | <p><table align=center borders=no> | |
89 | <tr><th align=left>File<th align=left>Content</tr> | |
90 | <tr><td align=center colspan=2><em>Either</em></tr> | |
91 | <tr><td>AliOffline<i>MM.mm-pp</i>.tar.gz | |
92 | <td>Code and the data files of ALICE Off-line</tr> | |
93 | <tr><td align=center colspan=2><em>Or</em></tr> | |
94 | <tr><td>AliLibs<i>MM.mm-pp</i>.tar.gz | |
95 | <td>Code and the data files of the auxiliary libraries</tr> | |
96 | <tr><td>AliRoot<i>MM.mm-pp</i>.tar.gz | |
97 | <td>All the code and the data files of the AliRoot system</tr> | |
98 | </table> | |
99 | ||
100 | <p> <i>MM.mm-pp</i> is the number of the latest <i>M</i>ajor and | |
20b19209 | 101 | <i>m</i>inor version and the <i>p</i>atch number. The file(s) have to be |
102 | unpacked into the $ALICE directory via the command: | |
14c31136 | 103 | |
104 | <p><pre>$ gtar xvfz Ali[...].tar.gz</pre> | |
105 | ||
106 | ||
107 | <p><li> <em>From cvs remote cvs server</em>. This method has the advantage | |
108 | that new patches can be incrementally retrieved and installed via internet. | |
109 | At the moment the problem is that the version of cvs currently installed at | |
110 | CERN (1.09) does not support well binary files. Therefore some data files | |
111 | will be missing with this download mechanism, and these will have to be | |
112 | fetched <em>by hand</em>. The setup of the access to the remote cvs server | |
1f3e54b9 | 113 | is described in the Code Development section. The |
14c31136 | 114 | code is dowloaded via the command: |
115 | ||
116 | <p><pre> | |
117 | $ cd $ALICE | |
118 | $ cvsa co -d pro AliRoot | |
119 | </pre> | |
120 | ||
121 | </ul> | |
122 | ||
123 | <p><li>install the CERN library part | |
124 | ||
125 | <p><pre> | |
126 | $ cd $ALICE_ROOT | |
127 | $ gmake cernlibs | |
128 | </pre> | |
129 | ||
130 | <p><li>Install the ALICE specific software | |
131 | ||
132 | <p><pre> | |
133 | $ cd $ALICE_ROOT | |
134 | $ gmake | |
135 | </pre> | |
136 | ||
137 | <p><li>Copy the file $ALICE_ROOT/.rootrc to your home directory | |
138 | ||
29cbfde8 | 139 | <p><li>For users with c-like shells, update your search path: |
140 | ||
141 | <p> | |
142 | <pre> | |
143 | $ rehash | |
144 | </pre> | |
145 | ||
146 | <p>This usually has to be done only once, after having defined the new PATH. | |
147 | ||
14c31136 | 148 | <p><li>Change to your home directory and run the code |
149 | ||
150 | <p> | |
151 | <pre> | |
152 | $ cd | |
153 | $ aliroot | |
154 | ||
155 | <output from aliroot> | |
156 | ||
157 | root [1] .x menu.C | |
158 | </pre> | |
159 | </ol> | |
160 | ||
4c505702 | 161 | <h2><A HREF="#Content" NAME="Code">Code development and user environment</A></h2> |
87ad6e14 | 162 | |
163 | <p>If the ALICE environment is set up correctly, the | |
164 | <var>$ALICE_ROOT/lib/tgt_$ALICE_TARGET</var> directory is in the shared | |
165 | libraries load path, and the <var>$ALICE_ROOT/bin/tgt_$ALICE_TARGET</var> | |
166 | directory is in the PATH variable. This means that the command aliroot will | |
167 | in fact correspond to the file | |
168 | <var>$ALICE_ROOT/bin/tgt_$ALICE_TARGET/aliroot</var>. | |
169 | ||
170 | <p>This is convenient for the normal user, but as soon as the user wants to | |
171 | modify one or more directories, this arrangement becomes inefficient | |
172 | because if a local copy of one of the shared libraries is remade, the | |
173 | linker will always find the official unmodified one that sits in the above | |
174 | directory before the local one in the load library path. Moreover, and | |
175 | unless the full path is specified, the local version of the <b>aliroot</b> | |
176 | executable will be ignored and the official version executed. | |
177 | ||
178 | <p>Therefore in order to develop one or more packages locally | |
179 | (let's say the TPC) and make modifications, the following steps should be | |
180 | performed. We suppose here that the remote cvs server has been setup correctly | |
4c505702 | 181 | as explained in the <a href="../development.html">code development</a> section. |
87ad6e14 | 182 | |
5023a744 | 183 | <p><table id="wide" cellspacing=10%> |
184 | <tr align=center> | |
185 | <th colspan=2> | |
186 | <hr><br> | |
187 | <font size=+1>Preparation of the environment</font> | |
188 | <br><hr> | |
87ad6e14 | 189 | <tr align=left> |
190 | <th width=30%>$ mkdir AliRoot | |
191 | <td width=50%>create the working directory | |
192 | <tr align=left> | |
193 | <th>$ cd AliRoot | |
194 | <td>set default to it | |
195 | <tr align=left> | |
196 | <th>$ mkdir pro | |
197 | <td>create pro subdirectory | |
198 | <tr align=left> | |
199 | <th>$ cd pro | |
200 | <td>set default to it | |
201 | <tr align=left> | |
202 | <th>$ ln -s $ALICE_ROOT/* ./ | |
203 | <td>link all files here | |
204 | <tr align=left> | |
205 | <th>$ rm lib | |
206 | <td>remove link for library, we need a local file here to containing the new | |
207 | TPC library | |
208 | <tr align=left> | |
209 | <th>$ rm bin | |
210 | <td>remove link for bin directory, we need it to rebuild <b>aliroot</b> executable | |
211 | <tr align=left> | |
212 | <th>$ rm TPC | |
213 | <td>remove link for TPC subdirectory, we need the real files here | |
214 | <tr align=left> | |
215 | <th>$ rm ALIROOT | |
216 | <td>remove link to ALIROOT subdirectory, may be this is not really necessary | |
217 | on all systems, but we do it just to be on the safe side | |
218 | <tr align=left> | |
219 | <th>$ cvsa co TPC | |
220 | <td>get from the cvs server the TPC files to be modified | |
221 | <tr align=left> | |
222 | <th>$ cvsa co ALIROOT | |
223 | <td>get from the server the ALIROOT files to recreate the executable | |
224 | <tr align=left> | |
225 | <th>$ mkdir -p lib/tgt_$ALICE_TARGET | |
226 | <td>create library directory | |
227 | <tr align=left> | |
228 | <th>$ cd lib/tgt_$ALICE_TARGET | |
229 | <td>set default to the lib directory | |
230 | <tr align=left> | |
231 | <th>$ ln -s $ALICE_ROOT/lib/* ./ | |
232 | <td>link all libraries here | |
233 | <tr align=left> | |
5023a744 | 234 | <th>$ rm libTPC.sl (on HP) |
235 | <br>$ rm libTPC.so (on the other systems) | |
87ad6e14 | 236 | <td>remove link to TPC library, we need a real one |
237 | <tr align=left> | |
238 | <th>$ changeRoot $HOME/AliRoot | |
5023a744 | 239 | <td>change the AliRoot root to $HOME/AliRoot via the <em>changeRoot</em> command |
87ad6e14 | 240 | <tr align=left> |
241 | <th>$ rehash | |
242 | <td>make sure that the new PATH is taken into account by the shell | |
5023a744 | 243 | <tr align=center> |
244 | <th colspan=2> | |
245 | <hr><br> | |
246 | <font size=+1>Normal development cycle</font> | |
247 | <br><hr> | |
87ad6e14 | 248 | <tr align=left> |
249 | <th>$ cd $ALICE_ROOT/TPC | |
250 | <td>(1) set default to TPC directory | |
251 | <tr align=left> | |
252 | <th>$ make macroclean | |
253 | <td>clean up all objects | |
254 | <tr align=left> | |
255 | <th>$ emacs AliTPCv1.cxx | |
256 | <td>(2) edit all the files... | |
257 | <tr align=left> | |
258 | <th>$ make | |
259 | <td>(3) recreate ../lib/libTPC.sl | |
260 | <tr align=left> | |
261 | <th>$ cd ../ALIROOT | |
262 | <td>set default to ALIROOT directory | |
263 | <tr align=left> | |
264 | <th>$ make macroclean | |
265 | <td>clean up object files | |
266 | <tr align=left> | |
267 | <th>$ make | |
268 | <td>make new executable | |
269 | <tr align=left> | |
270 | <th>$ cd <em>directory</em> | |
271 | <td>(4) set default elsewhere | |
272 | <tr align=left> | |
273 | <th>$ aliroot | |
274 | <td>(5) run aliroot | |
5023a744 | 275 | <tr align=center> |
276 | <th colspan=2> | |
277 | <hr> | |
87ad6e14 | 278 | </table> |
279 | ||
280 | <p>Steps 1-5 are the normal development cycle after the first pass through the | |
281 | procedure. | |
282 | ||
14c31136 | 283 | <hr> |
284 | <address> | |
285 | <script language="JavaScript"> | |
286 | document.write("Last modified "+ document.lastModified) | |
287 | // end of script --> | |
288 | </script> | |
289 | by <a href="mailto:Federico.Carminati@cern.ch">Federico Carminati</a> | |
290 | </address> | |
291 | </BODY> | |
292 | </HTML> |