Project

General

Profile

NetDRMS Installation » History » Version 212

Pablo Alingery, 07/06/2016 14:52

1 50 Herve Ballans
{{toc}}
2 1 Herve Ballans
3 1 Herve Ballans
h1. NetDRMS Installation
4 1 Herve Ballans
5 1 Herve Ballans
h2. Requirements
6 1 Herve Ballans
7 47 Pablo Alingery
h3. Configuring production environment
8 1 Herve Ballans
9 121 Pablo Alingery
Adding user production (en root)
10 47 Pablo Alingery
11 1 Herve Ballans
<pre>
12 1 Herve Ballans
# adduser production
13 1 Herve Ballans
# addgroup ias
14 1 Herve Ballans
# adduser production ias
15 1 Herve Ballans
</pre>
16 1 Herve Ballans
17 49 Herve Ballans
h3. Configure /home/production/.profile
18 1 Herve Ballans
19 49 Herve Ballans
Adding environment variables
20 1 Herve Ballans
21 1 Herve Ballans
<pre>
22 122 Herve Ballans
#Modif Herve.B Pablo.A 12/05/2016
23 122 Herve Ballans
24 1 Herve Ballans
PATH="/usr/local/netdrms_current/bin/linux_x86_64:$PATH"
25 49 Herve Ballans
PATH="/usr/local/netdrms_current/scripts:$PATH"
26 122 Herve Ballans
PATH="/usr/local/jmd/bin:$PATH"
27 122 Herve Ballans
PATH="/usr/local/jmd/scripts:$PATH"
28 141 Pablo Alingery
#The following is not needed as installed with 'apt-get install' 
29 141 Pablo Alingery
#PATH="/usr/local/pgsql/bin:$PATH"
30 122 Herve Ballans
PATH="/usr/local/netdrms-tools/scripts:$PATH"
31 49 Herve Ballans
#2014-12-17 Avec Herve et Pablo on pense que la ligne suivante est intutile as it is f.. install in /usr/local/lib
32 140 Pablo Alingery
PATH="/usr/local/cfitsio:$PATH"
33 1 Herve Ballans
#Done
34 49 Herve Ballans
35 122 Herve Ballans
DERBY_HOME=/usr/local/jmd/databases/derby/derbyBD
36 49 Herve Ballans
export DERBY_HOME
37 49 Herve Ballans
38 49 Herve Ballans
export CVSROOT=:pserver:anonymous@solarch.tuc.noao.edu:2401/vtarc1/vso/cvsroot
39 49 Herve Ballans
</pre>
40 49 Herve Ballans
41 162 Pablo Alingery
h3. Configure /varl/lib/postgres/.profile
42 161 Pablo Alingery
43 163 Pablo Alingery
Add to $PATH so postgres can exeute command like initdb
44 161 Pablo Alingery
45 161 Pablo Alingery
<pre>
46 161 Pablo Alingery
#Modif Herve.B Pablo.A 19/05/2016
47 161 Pablo Alingery
PATH="/usr/lib/postgresql/9.4/bin:$PATH"
48 161 Pablo Alingery
</pre>
49 161 Pablo Alingery
50 125 Pablo Alingery
h3. Setting privileges for SUMS_MANAGER
51 87 Herve Ballans
52 126 Pablo Alingery
Please modify file /etc/sudoers so user 'production' will be able to execute  'sum_chown' that we will locate in the dir : /usr/local/bin . See below
53 125 Pablo Alingery
Add to /etc/sudoers the following line :
54 1 Herve Ballans
	production host=NOPASSWD:/usr/local/bin/sum_chmown
55 1 Herve Ballans
56 127 Pablo Alingery
h3. Set passwords file for db postgres 
57 1 Herve Ballans
58 127 Pablo Alingery
Please create file .pgpass with the following information for user 'production" so he will be able to connect without password as 'production' or 'postgres' to 2 db that we will create later ias_sdo and ias_sdo_sums.
59 1 Herve Ballans
60 1 Herve Ballans
61 1 Herve Ballans
.pgpass content :
62 1 Herve Ballans
<pre>
63 128 Pablo Alingery
	#hostname:5432:ias_sdo:production: 
64 128 Pablo Alingery
	#hostname:5434:ias_sdo_sums:production: 
65 128 Pablo Alingery
	#hostname:5432:ias_sdo:postgres: 
66 128 Pablo Alingery
	#hostname:5434:ias_sdo_sums:postgres
67 1 Herve Ballans
</pre>
68 128 Pablo Alingery
69 129 Pablo Alingery
where #hostname is the name of your server
70 129 Pablo Alingery
71 129 Pablo Alingery
72 131 Pablo Alingery
%{color:red}WARNING : change hostname when migrate sdo-new to sdo%
73 1 Herve Ballans
74 143 Pablo Alingery
75 132 Pablo Alingery
76 133 Pablo Alingery
h3. Install missing libraries 
77 1 Herve Ballans
78 133 Pablo Alingery
• libreadline-dev (but already installed with postgresql)
79 133 Pablo Alingery
• libssl-dev 
80 133 Pablo Alingery
• libpam0g-dev 
81 133 Pablo Alingery
• libperl-dev 
82 1 Herve Ballans
83 133 Pablo Alingery
NB : Already done in Debian 8.4 Jessy
84 1 Herve Ballans
<pre>
85 1 Herve Ballans
# apt-get install $library_name
86 1 Herve Ballans
</pre> 
87 1 Herve Ballans
where
88 1 Herve Ballans
	_$library_name_ is the name of library
89 19 Pablo Alingery
90 1 Herve Ballans
Then to update path on libraries, please type :
91 1 Herve Ballans
<pre>
92 19 Pablo Alingery
# ldconfig
93 1 Herve Ballans
</pre>
94 1 Herve Ballans
95 1 Herve Ballans
h3. Reconfigure locale
96 1 Herve Ballans
97 1 Herve Ballans
<pre>
98 1 Herve Ballans
# dpkg-reconfigure locales
99 1 Herve Ballans
</pre>
100 1 Herve Ballans
101 1 Herve Ballans
select fr_FR.UTF8 UTF8 and unselect en_US.UTF-8
102 1 Herve Ballans
103 1 Herve Ballans
localedef -i en_US -f UTF-8 en_US.UTF-8
104 1 Herve Ballans
105 1 Herve Ballans
(see here : [[http://www.thomas-krenn.com/en/wiki/Perl_warning_Setting_locale_failed_in_Debian]])
106 1 Herve Ballans
107 134 Pablo Alingery
h3. Install gfortran packages
108 1 Herve Ballans
109 1 Herve Ballans
<pre>
110 1 Herve Ballans
# apt-get install gfortran swig
111 1 Herve Ballans
</pre>
112 1 Herve Ballans
113 1 Herve Ballans
h3. Installation of cfitsio library
114 1 Herve Ballans
115 135 Pablo Alingery
In /usr/local dir
116 135 Pablo Alingery
117 135 Pablo Alingery
Version 3.39 (currently on sdo : 3.24)
118 1 Herve Ballans
<pre>
119 135 Pablo Alingery
# wget ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/cfitsio3390.tar.gz
120 1 Herve Ballans
</pre>
121 137 Pablo Alingery
Untar and  decompression
122 1 Herve Ballans
<pre>
123 136 Pablo Alingery
# tar -xzvf cfitsio3390.tar.gz
124 1 Herve Ballans
</pre> 
125 1 Herve Ballans
126 139 Pablo Alingery
Go into /usr/local and type
127 1 Herve Ballans
128 1 Herve Ballans
su - root and :
129 1 Herve Ballans
<pre>
130 1 Herve Ballans
# ./configure --prefix=/usr/local
131 1 Herve Ballans
# make 
132 1 Herve Ballans
# make install
133 135 Pablo Alingery
</pre>
134 118 Pablo Alingery
135 144 Pablo Alingery
h3. Installation of apache2 and lib perl
136 118 Pablo Alingery
137 118 Pablo Alingery
<pre>
138 118 Pablo Alingery
# apt-get install apache2
139 118 Pablo Alingery
140 118 Pablo Alingery
# apt-get install libjson-perl
141 118 Pablo Alingery
142 118 Pablo Alingery
# apt-get install libapache2-mod-perl2
143 118 Pablo Alingery
</pre>
144 1 Herve Ballans
145 183 Herve Ballans
h3. Installation of postgresql
146 1 Herve Ballans
147 145 Pablo Alingery
Into 'root'
148 145 Pablo Alingery
 
149 145 Pablo Alingery
<pre>
150 147 Pablo Alingery
apt-get install postgresql-9.4 postgresql-client-9.4 
151 145 Pablo Alingery
</pre>
152 145 Pablo Alingery
153 209 Pablo Alingery
h3. Installation python3
154 209 Pablo Alingery
155 209 Pablo Alingery
Into 'root'
156 209 Pablo Alingery
 
157 209 Pablo Alingery
<pre>
158 209 Pablo Alingery
apt-get install python3 
159 1 Herve Ballans
</pre>
160 210 Pablo Alingery
161 211 Pablo Alingery
Add some modules psycopg2 (postgres connector) and pySmartDL (Download manager) 
162 210 Pablo Alingery
163 210 Pablo Alingery
<pre>
164 210 Pablo Alingery
apt-get install python3-psycopg2
165 210 Pablo Alingery
</pre>
166 210 Pablo Alingery
167 210 Pablo Alingery
<pre>
168 210 Pablo Alingery
apt-get install python3-psycopg2
169 210 Pablo Alingery
</pre>
170 210 Pablo Alingery
171 210 Pablo Alingery
Add python3-pip for modules within python3
172 210 Pablo Alingery
173 210 Pablo Alingery
<pre>
174 210 Pablo Alingery
apt-get install python3-pip
175 1 Herve Ballans
</pre>
176 212 Pablo Alingery
177 212 Pablo Alingery
<pre>
178 212 Pablo Alingery
pip3 install pySmartDL
179 212 Pablo Alingery
</pre>
180 212 Pablo Alingery
181 209 Pablo Alingery
182 1 Herve Ballans
h2. NetDRMS databases
183 1 Herve Ballans
184 156 Pablo Alingery
into /var/lib/postgresql  (hard mount point separated,  7 disks 15000 tr/min in raid5 in order to distribute read and write) 
185 1 Herve Ballans
186 1 Herve Ballans
<pre>
187 158 Pablo Alingery
# cd /var/lib/postgresql
188 157 Pablo Alingery
# mkdir data  data_sums data_monitor
189 157 Pablo Alingery
# chown -R postgres:postgres * 
190 1 Herve Ballans
</pre>
191 1 Herve Ballans
192 160 Pablo Alingery
h3. Initialize 3 servers data,  data_sums, data_monitor
193 1 Herve Ballans
194 159 Pablo Alingery
Into postgres
195 1 Herve Ballans
<pre>
196 1 Herve Ballans
# su - postgres
197 1 Herve Ballans
198 1 Herve Ballans
$ initdb --locale=C -D data -A md5 -W
199 1 Herve Ballans
(no password)
200 2 Herve Ballans
201 2 Herve Ballans
Success. You can now start the database server using:
202 2 Herve Ballans
203 2 Herve Ballans
    postgres -D data
204 2 Herve Ballans
or
205 2 Herve Ballans
    pg_ctl -D data -l logfile start
206 2 Herve Ballans
207 1 Herve Ballans
208 1 Herve Ballans
$ initdb --locale=C -D data_sums -A md5 -W
209 2 Herve Ballans
(no password)
210 2 Herve Ballans
211 2 Herve Ballans
Success. You can now start the database server using:
212 2 Herve Ballans
213 2 Herve Ballans
    postgres -D data_sums
214 2 Herve Ballans
or
215 2 Herve Ballans
    pg_ctl -D data_sums -l logfile start
216 8 Pablo Alingery
217 8 Pablo Alingery
$ initdb --locale=C -D data_monitor -A md5 -W
218 8 Pablo Alingery
(no password)
219 8 Pablo Alingery
220 8 Pablo Alingery
Success. You can now start the database server using:
221 8 Pablo Alingery
222 8 Pablo Alingery
    postgres -D data_monitor
223 8 Pablo Alingery
or
224 8 Pablo Alingery
    pg_ctl -D data_monitor -l logfile start
225 2 Herve Ballans
</pre>
226 2 Herve Ballans
227 1 Herve Ballans
228 1 Herve Ballans
229 1 Herve Ballans
Edition des fichiers postgresql.conf pour configurer les bons ports d'écoute :
230 1 Herve Ballans
listen_addresses = '*'
231 1 Herve Ballans
data -> port 5432
232 10 Pablo Alingery
data_sums -> port 5434
233 1 Herve Ballans
data_monitor -> port 5436
234 10 Pablo Alingery
235 165 Pablo Alingery
Edit files data*/pg_hba.conf : replace 'md5' by 'trust'
236 1 Herve Ballans
<pre>
237 1 Herve Ballans
#"local"
238 1 Herve Ballans
local   all             all                                     trust
239 1 Herve Ballans
#"IPv4"
240 1 Herve Ballans
host   all             all                                     trust
241 1 Herve Ballans
</pre>
242 166 Pablo Alingery
243 166 Pablo Alingery
h3. Tunning postgres 
244 166 Pablo Alingery
245 166 Pablo Alingery
In file postgres.conf ( according to https://www.qwant.com/?q=Tunning+postgres+server+9.4+&client=firefox  )
246 166 Pablo Alingery
247 168 Pablo Alingery
shared_buffer=4096MB %{color:red}So 1/12 of the total RAM memory available%
248 1 Herve Ballans
249 169 Pablo Alingery
work_mem = 24MB
250 168 Pablo Alingery
251 168 Pablo Alingery
maintenance_work_mem = 4096MB
252 1 Herve Ballans
253 169 Pablo Alingery
wal_buffers = 16MB
254 169 Pablo Alingery
255 169 Pablo Alingery
checkpoint_segments = 32
256 169 Pablo Alingery
257 169 Pablo Alingery
checkpoint_completion_target = 0.9
258 169 Pablo Alingery
259 169 Pablo Alingery
random_page_cost = 1.0
260 169 Pablo Alingery
261 169 Pablo Alingery
effective_cache_size = 16384MB so 1/4 of the max memory 
262 169 Pablo Alingery
263 170 Pablo Alingery
264 170 Pablo Alingery
265 170 Pablo Alingery
#log
266 169 Pablo Alingery
logging_collector = on 
267 169 Pablo Alingery
log_directory = 'pg_log' 
268 169 Pablo Alingery
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
269 169 Pablo Alingery
log_truncate_on_rotation = on           # If on, an existing log file with the
270 169 Pablo Alingery
log_rotation_age = 1d                   # Automatic rotation of logfiles will
271 170 Pablo Alingery
client_min_messages = error
272 170 Pablo Alingery
log_min_messages = error 
273 170 Pablo Alingery
log_min_duration_statement = 0
274 170 Pablo Alingery
275 170 Pablo Alingery
log_connections = on
276 170 Pablo Alingery
log_disconnections = on
277 170 Pablo Alingery
log_duration = off
278 170 Pablo Alingery
log_hostname = on
279 170 Pablo Alingery
log_line_prefix = '%t [%p]: %u@%h - %d :'  
280 170 Pablo Alingery
281 170 Pablo Alingery
track_counts = on
282 170 Pablo Alingery
autovacuum = on 
283 170 Pablo Alingery
284 170 Pablo Alingery
extra_float_digits = 3
285 170 Pablo Alingery
286 177 Pablo Alingery
h3. Start the 3 databases :
287 1 Herve Ballans
288 1 Herve Ballans
<pre>
289 1 Herve Ballans
# su - postgres
290 196 Herve Ballans
$ cd /var/lib/postgresql
291 172 Pablo Alingery
$ pg_ctl -D data  start
292 172 Pablo Alingery
$ pg_ctl -D data_sums start
293 172 Pablo Alingery
$ pg_ctl -D data_monitor start
294 1 Herve Ballans
</pre>
295 174 Pablo Alingery
296 1 Herve Ballans
h3. Create the 3 databases :
297 181 Pablo Alingery
298 178 Pablo Alingery
Into user 'postgres'
299 1 Herve Ballans
300 179 Pablo Alingery
* createdb --locale C -E LATIN1 -T template0 ias_sdo
301 179 Pablo Alingery
* createdb --locale C -E LATIN1 -T template0 -p 5434 ias_sdo_sums
302 179 Pablo Alingery
* createdb --locale C -E LATIN1 -T template0 -p 5436 ias_sdo_monitor
303 54 Herve Ballans
304 182 Herve Ballans
h3. Automatic startup
305 182 Herve Ballans
306 182 Herve Ballans
Add following lines in the /etc/rc.local file :
307 182 Herve Ballans
308 182 Herve Ballans
<pre>
309 197 Herve Ballans
su -l -c "/usr/lib/postgresql/9.4/bin/pg_ctl -D /var/lib/postgresql/data start" postgres
310 197 Herve Ballans
su -l -c "/usr/lib/postgresql/9.4/bin/pg_ctl -D /var/lib/postgresql/data_sums start" postgres
311 197 Herve Ballans
su -l -c "/usr/lib/postgresql/9.4/bin/pg_ctl -D /var/lib/postgresql/data_monitor start" postgres
312 182 Herve Ballans
</pre>
313 182 Herve Ballans
314 184 Herve Ballans
h2. System tuning
315 1 Herve Ballans
316 187 Herve Ballans
Current configuration :
317 185 Herve Ballans
<pre>
318 185 Herve Ballans
# sysctl -a
319 185 Herve Ballans
</pre>
320 1 Herve Ballans
321 187 Herve Ballans
In the following file :
322 185 Herve Ballans
<pre>
323 185 Herve Ballans
# vi /etc/sysctl.conf
324 185 Herve Ballans
</pre>
325 1 Herve Ballans
326 188 Herve Ballans
we change some values (default values are commented with '#')
327 194 Herve Ballans
328 195 Herve Ballans
(resources links [[Links|here]])
329 194 Herve Ballans
330 185 Herve Ballans
<pre>
331 191 Herve Ballans
# Semaphore is a object that is used to control utilization of a particular process.
332 191 Herve Ballans
# kernel.sem = SEMMSL SEMMNS SEMOPM SEMMNI
333 191 Herve Ballans
# SEMMSL        maximum number of semaphores per array  (min 128)
334 191 Herve Ballans
# SEMMNS        maximum semaphores system-wide  
335 191 Herve Ballans
# SEMOPM        maximum operations per semop call       
336 191 Herve Ballans
# SEMMNI        maximum arrays 
337 191 Herve Ballans
#semop incresed from 32 (default value)operation to 100 (3rd value )
338 191 Herve Ballans
# kernel.sem = 250      32000   32      128
339 191 Herve Ballans
kernel.sem = 250 32000 100 128
340 191 Herve Ballans
341 191 Herve Ballans
In order to  apply changes :#This sets the  OS receive buffer size for all types of connections (default value 212992)
342 191 Herve Ballans
#net.core.rmem_default = 212992
343 191 Herve Ballans
#net.core.rmem_max = 212992
344 191 Herve Ballans
net.core.rmem_default = 33554432
345 191 Herve Ballans
net.core.rmem_max = 33554432
346 191 Herve Ballans
347 191 Herve Ballans
#This is the OS send buffer size for all types of connections (212992 default value) 
348 191 Herve Ballans
#net.core.wmem_default = 212992
349 191 Herve Ballans
#net.core.wmem_max = 212992
350 191 Herve Ballans
net.core.wmem_default = 33554432
351 191 Herve Ballans
net.core.wmem_max = 33554432
352 191 Herve Ballans
353 193 Pablo Alingery
#TCP Autotuning setting. "The first value tells the kernel the minimum receive buffer for each TCP connection, and this buffer is always
354 193 Pablo Alingery
# allocated to a TCP socket, even under high pressure on the system. ... The second value specified tells the kernel the default receive
355 193 Pablo Alingery
# buffer allocated for each TCP socket. This value overrides the /proc/sys/net/core/rmem_default value used by other protocols. ...
356 192 Pablo Alingery
# The third and last value specified in this variable specifies the maximum receive buffer that can be allocated for a TCP socket."
357 1 Herve Ballans
#net.ipv4.tcp_rmem = 4096       87380   6291456
358 1 Herve Ballans
net.ipv4.tcp_rmem = 10240 87380 33554432
359 1 Herve Ballans
360 193 Pablo Alingery
#TCP Autotuning setting. "This variable takes 3 different values which holds information on how much TCP sendbuffer memory space
361 193 Pablo Alingery
# each TCP socket has to use. Every TCP socket has this much buffer space to use before the buffer is filled up. Each of the three 
362 193 Pablo Alingery
#values are used under different conditions. ... The first value in this variable tells the minimum TCP send buffer space available
363 193 Pablo Alingery
# for a single TCP socket. ... The second value in the variable tells us the default buffer space allowed for a single TCP socket to use. ... 
364 193 Pablo Alingery
#The third value tells the kernel the maximum TCP send buffer space." 
365 191 Herve Ballans
#net.ipv4.tcp_wmem = 4096       16384   4194304
366 191 Herve Ballans
net.ipv4.tcp_wmem = 10240 87380 33554432
367 191 Herve Ballans
368 191 Herve Ballans
#Disable cache metrics so the initial conditions of the closed connections will not be saved to be used in near future connections
369 191 Herve Ballans
#net.ipv4.tcp_no_metrics_save = 0
370 191 Herve Ballans
net.ipv4.tcp_no_metrics_save = 1
371 191 Herve Ballans
372 1 Herve Ballans
# Increase number of incoming connections backlog
373 1 Herve Ballans
# net.core.netdev_max_backlog = 1000
374 1 Herve Ballans
net.core.netdev_max_backlog = 5000
375 1 Herve Ballans
376 1 Herve Ballans
# The tcp_mem variable defines how the TCP stack should behave when it comes to memory usage. ... 
377 192 Pablo Alingery
#The first value specified in the tcp_mem variable tells the kernel the low threshold. 
378 192 Pablo Alingery
#Below this point, the TCP stack do not bother at all about putting any pressure on the memory usage by different TCP sockets. ... 
379 193 Pablo Alingery
#The second value tells the kernel at which point to start pressuring memory usage down. ... The final value tells the kernel how many
380 193 Pablo Alingery
# memory pages it may use maximally
381 1 Herve Ballans
# net.ipv4.tcp_mem = 1543347    2057796 3086694
382 191 Herve Ballans
net.ipv4.tcp_mem = 786432 1048576 26777216
383 191 Herve Ballans
384 192 Pablo Alingery
# local port range that is used by TCP and UDP traffic to choose the local port. You will see in the parameters of this file two numbers:
385 192 Pablo Alingery
# The first number is the first local port allowed for TCP and UDP traffic on the server, the second is the last local port number.
386 191 Herve Ballans
# net.ipv4.ip_local_port_range = 32768  61000
387 191 Herve Ballans
net.ipv4.ip_local_port_range = 1024 65535
388 191 Herve Ballans
389 191 Herve Ballans
# maximum number of sockets in TIME-WAIT to be held simultaneously.
390 191 Herve Ballans
# net.ipv4.tcp_max_tw_buckets = 262144
391 191 Herve Ballans
net.ipv4.tcp_max_tw_buckets = 360000
392 1 Herve Ballans
</pre>
393 185 Herve Ballans
394 191 Herve Ballans
Then we run the following command to make our change take effect:
395 191 Herve Ballans
396 185 Herve Ballans
<pre>
397 185 Herve Ballans
# sysctl -p
398 185 Herve Ballans
</pre>
399 176 Pablo Alingery
400 1 Herve Ballans
h2. NetDRMS tool Install
401 23 Pablo Alingery
402 199 Pablo Alingery
The following installed is based on : [[http://inf-redmine.ias.u-psud.fr/redmine/attachments/download/114/Netdrms_First_Install.odt]]
403 1 Herve Ballans
404 207 Pablo Alingery
The sources are in : http://jsoc.stanford.edu/netdrms/dist/ 
405 207 Pablo Alingery
Locally on sdo-new in  : /home/production/sources
406 1 Herve Ballans
407 199 Pablo Alingery
Symbolic link created 'netdrms_current' that corresponds to the last release
408 1 Herve Ballans
ln -s netdrms_8.10/ netdrms_current 
409 1 Herve Ballans
410 199 Pablo Alingery
Edit file config.local
411 27 Pablo Alingery
<pre>
412 27 Pablo Alingery
cp config.local.template config.local
413 1 Herve Ballans
</pre>
414 29 Pablo Alingery
415 203 Pablo Alingery
%{color:red}Warning WEB_DBUSER      apache  We think that it should value www maybe , to be checked testing the cgi%
416 208 Pablo Alingery
%{color:red}So check the cgi to figure out which user is used to connect to bd%
417 32 Herve Ballans
418 199 Pablo Alingery
Create 2 followings dirs : 
419 1 Herve Ballans
<pre>
420 32 Herve Ballans
mkdir /usr/local/netdrms_8.10/logs/SUM
421 28 Pablo Alingery
mkdir /usr/local/netdrms_8.10/logs/slony
422 27 Pablo Alingery
</pre>
423 1 Herve Ballans
424 205 Pablo Alingery
%{color:red}Warning config.local from line 150 =>222 Remote config to provide data, series to externals%
425 205 Pablo Alingery
%{color:red}To be checked for PLATO%
426 1 Herve Ballans
427 1 Herve Ballans
Création d'un alias netdrms dans /root/.bashrc
428 27 Pablo Alingery
<pre>
429 1 Herve Ballans
alias netdrms='cd /usr/local/netdrms_current'
430 1 Herve Ballans
</pre>
431 31 Pablo Alingery
432 206 Pablo Alingery
%{color:red}In config.local we are at line 223%
433 206 Pablo Alingery
%{color:red}------------------------------------------------------------------------------------------------------------------%
434 206 Pablo Alingery
435 1 Herve Ballans
h3. Modification du fichier /usr/local/netdrms_current/configure (Not Applied in NetDrms_8.10)
436 1 Herve Ballans
437 1 Herve Ballans
<pre>
438 1 Herve Ballans
# The system configuration for configure script
439 1 Herve Ballans
set PERLBIN = "/usr/bin/perl"
440 1 Herve Ballans
set PYBIN = "/usr/bin/python"
441 200 Pablo Alingery
</pre>
442 200 Pablo Alingery
443 34 Herve Ballans
444 34 Herve Ballans
h3. Compilation problem due to uncorrect variable types
445 35 Herve Ballans
446 34 Herve Ballans
Art (art.amezcua@stanford.edu) purpose us a workaround and send us 2 files with correct declaration :
447 42 Herve Ballans
448 42 Herve Ballans
SUMLIB_RmDo.pgc (diff with original file : [[diff_SUMLIB_RmDo.pgc]])
449 34 Herve Ballans
SUMLIB_RmDoX.pgc (diff with original file : [[diff_SUMLIB_RmDoX.pgc]])
450 109 Pablo Alingery
451 109 Pablo Alingery
Dans le répertoire base/sums/libs/pg renommer les anciens en *.orig et placer les nouveau fichiers SUMLIB_RmDo.pgc et SUMLIB_RmDoX.pgc
452 36 Herve Ballans
453 36 Herve Ballans
<pre>
454 36 Herve Ballans
# wget http://jsoc.stanford.edu/~arta/SUMLIB_RmDo.pgc
455 38 Herve Ballans
# wget http://jsoc.stanford.edu/~arta/SUMLIB_RmDoX.pgc
456 34 Herve Ballans
</pre>
457 1 Herve Ballans
458 1 Herve Ballans
h3. Modification du fichier /usr/local/netdrms_current/build/jsoc_machine.csh
459 1 Herve Ballans
460 1 Herve Ballans
ligne 28 :
461 1 Herve Ballans
462 1 Herve Ballans
<pre>
463 1 Herve Ballans
  case "x86_64":
464 1 Herve Ballans
      echo linux_x86_64
465 1 Herve Ballans
      breaksw
466 109 Pablo Alingery
</pre>
467 109 Pablo Alingery
468 109 Pablo Alingery
Overwriting the existing files in the right place (base/sums/libs/pg) & modif in jsoc_machine.csh 
469 109 Pablo Alingery
=> the command 'make' works well.
470 109 Pablo Alingery
471 109 Pablo Alingery
But there is still problem with 'make sums'
472 109 Pablo Alingery
473 109 Pablo Alingery
h3. Workaround to solve make sums problem
474 109 Pablo Alingery
475 109 Pablo Alingery
Modify [[sum_rpc.h]] in order to match the type of some variables
476 109 Pablo Alingery
477 1 Herve Ballans
478 43 Pablo Alingery
479 1 Herve Ballans
h3. Copier /usr/local/netdrms_2.4_release/base/drms/apps/serverdefs.h dans /usr/local/netdrms_current/base/drms/apps (not applied in NetDrms_8.10)
480 44 Pablo Alingery
481 1 Herve Ballans
h3. Modification du fichier /usr/local/netdrms_current/configure (not applied in NetDrms_8.10)
482 1 Herve Ballans
483 1 Herve Ballans
au lieu de $? en csh on va mettre plutot $status
484 1 Herve Ballans
485 1 Herve Ballans
ligne 110 :
486 1 Herve Ballans
487 1 Herve Ballans
<pre>
488 1 Herve Ballans
  if ($status==0) 
489 1 Herve Ballans
</pre>
490 4 Herve Ballans
491 1 Herve Ballans
et ligne 123 :
492 1 Herve Ballans
493 1 Herve Ballans
<pre>
494 1 Herve Ballans
  if ($status==0) 
495 1 Herve Ballans
</pre>
496 4 Herve Ballans
497 4 Herve Ballans
Lancement :
498 4 Herve Ballans
<pre>
499 1 Herve Ballans
./configure
500 1 Herve Ballans
</pre>
501 1 Herve Ballans
502 1 Herve Ballans
h3. Installation des libraries libtar-dev, libcurl3-dev et libecpg-dev
503 1 Herve Ballans
504 4 Herve Ballans
<pre>
505 1 Herve Ballans
apt-get install libtar libtar-dev
506 1 Herve Ballans
</pre>
507 1 Herve Ballans
508 1 Herve Ballans
<pre>
509 1 Herve Ballans
apt-get install libcurl3-dev
510 1 Herve Ballans
</pre>
511 1 Herve Ballans
512 1 Herve Ballans
<pre>
513 1 Herve Ballans
apt-get install libecpg-dev
514 1 Herve Ballans
</pre>
515 45 Pablo Alingery
516 1 Herve Ballans
h3. #H4ck 2 Malade #PabloR0cks# (Not Applied in NetDrm_8.10)
517 1 Herve Ballans
518 1 Herve Ballans
Modification du fichier /usr/include/stdint.h
519 17 Herve Ballans
520 17 Herve Ballans
ligne 55 : long int remplacé par long long int
521 17 Herve Ballans
522 17 Herve Ballans
<pre>
523 17 Herve Ballans
#if __WORDSIZE == 64
524 17 Herve Ballans
typedef unsigned long int       uint64_t; --> ici long long int
525 17 Herve Ballans
#else
526 17 Herve Ballans
__extension__
527 17 Herve Ballans
typedef unsigned long long int  uint64_t;
528 17 Herve Ballans
#endif
529 1 Herve Ballans
</pre>
530 1 Herve Ballans
531 1 Herve Ballans
"Allo Linus ?!?.."
532 1 Herve Ballans
533 1 Herve Ballans
h3. Compilation
534 1 Herve Ballans
535 1 Herve Ballans
<pre>
536 1 Herve Ballans
# make
537 53 Herve Ballans
# make sums
538 1 Herve Ballans
# make jsoc_fetch
539 1 Herve Ballans
</pre>
540 1 Herve Ballans
541 6 Pablo Alingery
NB : lib64 does not exist on debian 8. so ln -s /usr/lib lib64
542 46 Pablo Alingery
543 1 Herve Ballans
h2. make sums KO  (Not applied in NetDrms_8.10)
544 6 Pablo Alingery
545 6 Pablo Alingery
Solution found : Take old lib libcrypto instead libssl
546 16 Herve Ballans
547 6 Pablo Alingery
dans le fichier base/sums/apps/Rules.mk ligne 51 
548 55 Herve Ballans
replace -lssl by -lcrypto LD flag
549 57 Herve Ballans
550 55 Herve Ballans
h2. NetDRMS replication
551 56 Herve Ballans
552 56 Herve Ballans
<pre>
553 60 Herve Ballans
# cd base/drms/replication/etc
554 60 Herve Ballans
# scp production@sdo:/usr/local/netdrms/install-config-files/ias.subscribe_list.cfg  .
555 104 Pablo Alingery
# scp production@sdo:/usr/local/netdrms/install-config-files/ias.repclient.cfg  .
556 104 Pablo Alingery
WRONG !!!!!
557 104 Pablo Alingery
To be done cp repclient.template.cfg into ias.subscribe_list.cfg because new field in config file can't appear 
558 104 Pablo Alingery
Correct that step in NetDrms doc 
559 104 Pablo Alingery
The existing ias.repclient.cfg can be used tough to fill params 
560 104 Pablo Alingery
561 56 Herve Ballans
562 104 Pablo Alingery
</pre>
563 6 Pablo Alingery
564 59 Herve Ballans
565 59 Herve Ballans
Create tmp dir in netdrms working directory (/usr/local/netdrms_current)
566 59 Herve Ballans
<pre>
567 59 Herve Ballans
# mkdir tmp
568 59 Herve Ballans
</pre>
569 61 Herve Ballans
570 61 Herve Ballans
Prevent from deleting files
571 61 Herve Ballans
<pre>
572 61 Herve Ballans
cd logs/SUM ; scp production@sdo:/usr/local/netdrms/install-config-files/sum_rm.cfg .
573 61 Herve Ballans
</pre>
574 117 Pablo Alingery
575 112 Herve Ballans
h2. JMD installation 
576 115 Pablo Alingery
577 115 Pablo Alingery
Donwnload new JMD package build by Niles Oien 2016-04-07 following thoses actions :
578 115 Pablo Alingery
579 116 Pablo Alingery
<pre>
580 116 Pablo Alingery
cd /urs/local
581 115 Pablo Alingery
582 115 Pablo Alingery
[oien@spsc-nso19-12 ~]$ ftp gong2.nso.edu
583 115 Pablo Alingery
Name (gong2.nso.edu:oien): anonymous
584 115 Pablo Alingery
Password: <---------------- use your email as the password
585 115 Pablo Alingery
ftp> cd outgoing/oien
586 115 Pablo Alingery
ftp> get pablo_jmd.tar.gz
587 115 Pablo Alingery
ftp> quit
588 115 Pablo Alingery
</pre>
589 115 Pablo Alingery
590 115 Pablo Alingery
Install new JMD package following thoses actions 
591 115 Pablo Alingery
592 115 Pablo Alingery
<pre>
593 1 Herve Ballans
[oien@spsc-nso19-12 ~]$ gunzip -vf pablo_jmd.tar.gz
594 1 Herve Ballans
pablo_jmd.tar.gz:      8.3% -- replaced with pablo_jmd.tar
595 116 Pablo Alingery
[oien@spsc-nso19-12 ~]$ tar xf pablo_jmd.tar
596 116 Pablo Alingery
[oien@spsc-nso19-12 ~]$ cd pablo_jmd
597 116 Pablo Alingery
[oien@spsc-nso19-12 pablo_jmd]$ less PABLO_README.txt
598 115 Pablo Alingery
cd ..
599 116 Pablo Alingery
mv jmd jmd_old
600 115 Pablo Alingery
mv pablo_jmd jmd 
601 112 Herve Ballans
</pre>
602 119 Pablo Alingery
603 112 Herve Ballans
h2. JMD Configuration
604 112 Herve Ballans
605 112 Herve Ballans
Configure webserver  to request jsoc_fetch
606 112 Herve Ballans
(following the mail from nilesoien@gmail.com)
607 113 Pablo Alingery
608 113 Pablo Alingery
config d 'apache2 fichier sdo3.ias.u-psud.fr 
609 113 Pablo Alingery
<pre>
610 113 Pablo Alingery
611 113 Pablo Alingery
<VirtualHost *:80>
612 113 Pablo Alingery
        ServerName sdo3.ias.u-psud.fr
613 113 Pablo Alingery
        ServerAdmin pablo.alingery@ias.u-psud.fr
614 113 Pablo Alingery
        #ErrorLog /var/log/apache2/error.log
615 113 Pablo Alingery
        DocumentRoot /var/www
616 113 Pablo Alingery
617 113 Pablo Alingery
        # Possible values include: debug, info, notice, warn, error, crit,
618 113 Pablo Alingery
        # alert, emerg.
619 113 Pablo Alingery
        LogLevel debug
620 113 Pablo Alingery
621 113 Pablo Alingery
        #CustomLog /var/log/apache2/VSO/access.log combined
622 113 Pablo Alingery
623 113 Pablo Alingery
        Alias /VSO/DRMS/cgi-bin/ "/home/production/netdrms-tools/scripts/cgi-bin/"
624 113 Pablo Alingery
625 113 Pablo Alingery
        <Location /VSO/DRMS/cgi-bin>
626 113 Pablo Alingery
                SetHandler perl-script
627 113 Pablo Alingery
                PerlResponseHandler ModPerl::Registry
628 113 Pablo Alingery
                PerlOptions +ParseHeaders
629 113 Pablo Alingery
                Options +ExecCGI
630 113 Pablo Alingery
                Order allow,deny
631 113 Pablo Alingery
                Allow from all
632 112 Herve Ballans
        </Location>
633 112 Herve Ballans
</VirtualHost>
634 112 Herve Ballans
635 112 Herve Ballans
</pre>
636 1 Herve Ballans
637 120 Pablo Alingery
638 1 Herve Ballans
Execution test cgi with URL :
639 112 Herve Ballans
http://sdo3.ias.u-psud.fr/ VSO/DRMS/cgi-bin/vso_jsoc_fetch.cgi
640 120 Pablo Alingery
641 112 Herve Ballans
expected result  :
642 112 Herve Ballans
<pre>
643 112 Herve Ballans
{
644 112 Herve Ballans
   "wait" : 0,
645 112 Herve Ballans
   "requestid" : "",
646 112 Herve Ballans
   "data" : {},
647 112 Herve Ballans
   "method" : "url_quick",
648 112 Herve Ballans
   "size" : 0,
649 112 Herve Ballans
   "errormsg" : "Empty query",
650 112 Herve Ballans
   "protocol" : "as-is",
651 112 Herve Ballans
   "status" : 1,
652 112 Herve Ballans
   "space_ratio" : 0.1,
653 112 Herve Ballans
   "load_ratio" : 0.066875,
654 112 Herve Ballans
   "dir" : "",
655 112 Herve Ballans
   "count" : 0
656 112 Herve Ballans
}
657 91 Herve Ballans
</pre>
658 91 Herve Ballans
659 91 Herve Ballans
h2. NetDRMS Start script
660 91 Herve Ballans
661 91 Herve Ballans
<pre>
662 91 Herve Ballans
sum_start.NetDRMS
663 91 Herve Ballans
</pre>
664 91 Herve Ballans
665 91 Herve Ballans
h2. Database repair (from Art)
666 91 Herve Ballans
667 91 Herve Ballans
On ias_sdo
668 91 Herve Ballans
669 91 Herve Ballans
<pre>
670 91 Herve Ballans
delete from admin.ns where name = 'lm_jps';
671 91 Herve Ballans
delete from admin.ns where name = 'aia_test';
672 91 Herve Ballans
</pre>
673 93 Pablo Alingery
674 93 Pablo Alingery
h2. Private key Public key generation 
675 93 Pablo Alingery
676 93 Pablo Alingery
<pre>
677 93 Pablo Alingery
ssh-keygen -t rsa
678 93 Pablo Alingery
</pre>
679 103 Herve Ballans
680 103 Herve Ballans
Not necessary cause we recover the ssh keys of the current server.
681 103 Herve Ballans
682 103 Herve Ballans
However, we have to retrieve the private key of production account on sdo3
683 103 Herve Ballans
684 103 Herve Ballans
From sdo :
685 103 Herve Ballans
<pre>
686 103 Herve Ballans
rsync -av id_rsa production@sdo3:/home/production/.ssh/
687 103 Herve Ballans
</pre>
688 94 Herve Ballans
689 94 Herve Ballans
h2. Node definition
690 94 Herve Ballans
691 94 Herve Ballans
file : /usr/local/netdrms_current/base/drms/replication/etc/ias.repclient.cfg
692 94 Herve Ballans
693 94 Herve Ballans
<pre>
694 1 Herve Ballans
node=IAStest
695 96 Herve Ballans
</pre>
696 96 Herve Ballans
697 96 Herve Ballans
h2. show_series and delete_series binaries
698 96 Herve Ballans
699 97 Pablo Alingery
Remark : these 2 sources are not compiled during installation
700 96 Herve Ballans
Issue : in netdrms_current 8.10 , do :
701 96 Herve Ballans
$ make delete_series
702 94 Herve Ballans
$ make show_series
703 98 Pablo Alingery
704 1 Herve Ballans
h2. SSH-HPN install 
705 98 Pablo Alingery
706 1 Herve Ballans
Intallation de openssh 6.3p1 car le dernier patch hpn dispo est 6.3hpn13.V6 
707 99 Herve Ballans
708 99 Herve Ballans
web site for open ssh : http://ftp2.fr.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-6.3p1.tar.gz
709 1 Herve Ballans
patch hpn : http://www.psc.edu/index.php/hpn-ssh-patches/hpn-14-kitchen-sink-patches/viewdownload/24-hpn-14-kitchen-sink-patches/102-openssh-6-3p1-hpnssh14v2-kitchen-sink-patch
710 99 Herve Ballans
711 99 Herve Ballans
<pre>
712 99 Herve Ballans
# tar -xzvf openssh-6.3p1.tar.gz
713 99 Herve Ballans
# gunzip openssh-6.3p1-hpnssh14v2.diff.gz
714 99 Herve Ballans
# cd openssh-6.3p1
715 99 Herve Ballans
# zcat ../openssh-6.3p1-hpnssh14v2.diff.gz | patch -p1
716 99 Herve Ballans
# ./configure --prefix=/usr/local/hpn-ssh --with-pam --with-md5-passwords --without-zlib-version-check --with-tcp-wrappers
717 99 Herve Ballans
# make
718 99 Herve Ballans
# make install
719 1 Herve Ballans
</pre>
720 99 Herve Ballans
721 99 Herve Ballans
Depuis sdo :
722 99 Herve Ballans
<pre>
723 99 Herve Ballans
# cd /usr/local/hpn-ssh/etc/
724 99 Herve Ballans
# rsync -av *key* netadm@sdo3:/home/netadm/
725 99 Herve Ballans
</pre>
726 99 Herve Ballans
727 99 Herve Ballans
Sur sdo3 :
728 1 Herve Ballans
<pre>
729 100 Herve Ballans
rsync -av /home/netadm/*key* /usr/local/hpn-ssh/etc/
730 100 Herve Ballans
</pre>
731 100 Herve Ballans
732 100 Herve Ballans
We have to configure the port number to 55000
733 100 Herve Ballans
<pre>
734 100 Herve Ballans
# vi ssh_config
735 100 Herve Ballans
</pre>
736 101 Herve Ballans
737 100 Herve Ballans
and add :
738 100 Herve Ballans
<pre>
739 100 Herve Ballans
#Port 22
740 100 Herve Ballans
Port 55000
741 1 Herve Ballans
</pre>
742 101 Herve Ballans
743 100 Herve Ballans
We configure also the server hpn (even we don't use it yet)
744 100 Herve Ballans
<pre>
745 100 Herve Ballans
# vi sshd_config
746 100 Herve Ballans
</pre>
747 100 Herve Ballans
748 100 Herve Ballans
and add :
749 100 Herve Ballans
<pre>
750 100 Herve Ballans
#Port 22
751 100 Herve Ballans
Port 55000
752 100 Herve Ballans
753 100 Herve Ballans
#PidFile /var/run/sshd.pid
754 100 Herve Ballans
PidFile /var/run/sshd.55000.pid
755 100 Herve Ballans
756 100 Herve Ballans
# allow the use of the none cipher
757 100 Herve Ballans
#NoneEnabled no
758 99 Herve Ballans
NoneEnabled yes
759 98 Pablo Alingery
</pre>
760 106 Pablo Alingery
761 105 Pablo Alingery
h2. Correction
762 105 Pablo Alingery
763 105 Pablo Alingery
h3. Modification du fichier ias.repclient.cfg
764 105 Pablo Alingery
765 105 Pablo Alingery
Copier le template existant repclient.template.cfg dans le répertoire [netdrms_current]/base/drms/replication/etc
766 105 Pablo Alingery
 
767 105 Pablo Alingery
<pre>
768 105 Pablo Alingery
production@sdo3:/usr/local/netdrms_current/base/drms/replication/etc$ cp repclient.template.cfg ias.repclient.cfg
769 105 Pablo Alingery
</pre>
770 1 Herve Ballans
771 106 Pablo Alingery
Nouveau / netdrms2.4 
772 105 Pablo Alingery
<pre>
773 105 Pablo Alingery
# Apps
774 106 Pablo Alingery
kRSPerl=<path to Perl binary to use when Perl scripts are executed>
775 105 Pablo Alingery
</pre>
776 107 Pablo Alingery
777 107 Pablo Alingery
h2. Subscription test 
778 107 Pablo Alingery
779 107 Pablo Alingery
h3. Librairies manquantes
780 107 Pablo Alingery
781 107 Pablo Alingery
Errors 
782 107 Pablo Alingery
<pre>
783 107 Pablo Alingery
Failure to apply SQL file 'IAStest.subscribe_series.sql' from server: ABORTING!
784 107 Pablo Alingery
Can't locate DBI.pm 
785 107 Pablo Alingery
.
786 107 Pablo Alingery
.
787 107 Pablo Alingery
.
788 107 Pablo Alingery
Failure to apply SQL file 'IAStest.subscribe_series.sql' from server: ABORTING!
789 107 Pablo Alingery
Can't locate DBD/Pg.pm
790 107 Pablo Alingery
</pre>
791 1 Herve Ballans
792 1 Herve Ballans
<pre>
793 1 Herve Ballans
root@sdo3:/usr/local/netdrms_8.10/base/drms/replication/subscribe_series# apt-get install libdbi-perl 
794 1 Herve Ballans
root@sdo3:/usr/local/netdrms_8.10/base/drms/replication/subscribe_series# apt-get install libdbd-pg-perl
795 1 Herve Ballans
</pre>
796 110 Herve Ballans
797 110 Herve Ballans
h3. Series souscrites
798 110 Herve Ballans
799 110 Herve Ballans
hmi.sharp_720s_nrt
800 110 Herve Ballans
hmi.mharp_720s_nrt
801 110 Herve Ballans
hmi.bharp_720s_nrt
802 110 Herve Ballans
803 110 Herve Ballans
<pre>
804 110 Herve Ballans
production@sdo3:~$ show_info -s hmi.sharp_720s_nrt
805 110 Herve Ballans
First Record: hmi.sharp_720s_nrt[476][2012.09.14_02:12:00_TAI], Recnum = 829707
806 110 Herve Ballans
Last Record:  hmi.sharp_720s_nrt[4943][2016.03.22_18:24:00_TAI], Recnum = 2015202
807 110 Herve Ballans
Last Recnum:  2015202
808 110 Herve Ballans
Has shadow table: no
809 107 Pablo Alingery
</pre>
810 111 Herve Ballans
811 111 Herve Ballans
h3. Lancement de jetty
812 111 Herve Ballans
813 111 Herve Ballans
<pre>
814 111 Herve Ballans
$ jetty.sh start
815 111 Herve Ballans
</pre>
816 111 Herve Ballans
817 111 Herve Ballans
818 111 Herve Ballans
819 108 Pablo Alingery
820 108 Pablo Alingery
h2. Test recuperation de meta data 
821 108 Pablo Alingery
822 108 Pablo Alingery
librairies manquantes 
823 108 Pablo Alingery
apt-get install libnet-ssh-perl
824 108 Pablo Alingery
apt-get install libstring-shellquote-perl
825 108 Pablo Alingery
826 152 Pablo Alingery
h2. TO BE DONE FURTHER
827 108 Pablo Alingery
828 107 Pablo Alingery
829 152 Pablo Alingery
%{color:red} configure sytem nbr de fichier ouvert en meme temps%
830 1 Herve Ballans
831 152 Pablo Alingery
%{color:red} configure sytem taille  buffer%
832 152 Pablo Alingery
833 155 Pablo Alingery
%{color:red} swap désactivé ? discussion Stephane et Gilles%
834 152 Pablo Alingery
835 80 Pablo Alingery
836 1 Herve Ballans
h3. Modification du fichir config.local pour la souscription au jsoc
837 1 Herve Ballans
838 1 Herve Ballans
839 1 Herve Ballans
<pre>
840 1 Herve Ballans
# NetDRMS users can request subdirectories from the Stanford proj directories 
841 1 Herve Ballans
# (e.g., JSOC/proj/util). These users will need to contact Stanford and obtain
842 1 Herve Ballans
# the source subdirectories desired. They will then place these subdirectories
843 1 Herve Ballans
# in the JSOC/proj directory of their NetDRMS release. To properly build 
844 1 Herve Ballans
# targets in these subdirectories, using the JSOC make system, the user needs
845 1 Herve Ballans
# to add entries to this configuration file - one entry for each subdirectory
846 1 Herve Ballans
# that contains source code to be compiled. Each entry is a space-separated pair
847 1 Herve Ballans
# of strings: the string "PROJDIR" followed by a subdirectory (of the proj 
848 1 Herve Ballans
# directory).  For example:
849 1 Herve Ballans
#
850 1 Herve Ballans
# PROJDIR     util/apps
851 1 Herve Ballans
# PROJDIR     util/libs
852 1 Herve Ballans
# 
853 1 Herve Ballans
# NOTE: It is not sufficient to list only a parent directory, like util. Source code
854 18 Herve Ballans
# in child directories will not automatically be compiled.
855 18 Herve Ballans
</pre>
856 18 Herve Ballans
857 18 Herve Ballans
h3. Python library for multi-threaded SUMS
858 1 Herve Ballans
859 1 Herve Ballans
Installation de la librairie python3.4m