NetDRMS Installation » History » Version 42
Version 41 (Herve Ballans, 18/09/2015 14:14) → Version 42/369 (Herve Ballans, 18/09/2015 14:21)
{{>toc}}
h1. NetDRMS Installation
h2. Requirements
h3. Adding user production
<pre>
# adduser production
# addgroup ias
# adduser production ias
</pre>
h3. Configuring production environment
TBD
h3. sshagent to JSOC
TBD
h3. Mise en place de Privilèges pour le SUMS_MANAGER
Veuillez modifier le fichier /etc/sudoers afin que le user 'production' puisse exécuter le programme sum_chown que nous placerons plus loin dans le répertoire :usr/local/bin.
Cela se fait en ajoutant au fichier la ligne suivante :
production host=NOPASSWD:/usr/local/bin/sum_chmown
h3. Mise en place du fichier de mot de passe pour la base postgres
Veuillez créer le fichier .pgpass contenant les informations nécessaires au user 'production" afin qu'il se connecte sans mot de passe, en tant que 'production' ou 'postgres' aux 2 bases que l'on créera plus loin ias_sdo et ias_sdo_sums.
.pgpass content :
<pre>
sol-sdo1:5432:ias_sdo:production:
sol-sdo1:5434:ias_sdo_sums:production:
sol-sdo1:5432:ias_sdo:postgres:
sol-sdo1:5434:ias_sdo_sums:postgres
</pre>
h3. Install missing libraries
• libreadline-dev (but already installed with postgresql)
• libssl-dev
• libpam0g-dev
• libperl-dev
<pre>
# apt-get install $library_name
</pre>
where
_$library_name_ is the name of library
Then to update path on libraries, please type :
<pre>
# ldconfig
</pre>
h3. Reconfigure locale
<pre>
# dpkg-reconfigure locales
</pre>
select fr_FR.UTF8 UTF8 and unselect en_US.UTF-8
localedef -i en_US -f UTF-8 en_US.UTF-8
(see here : [[http://www.thomas-krenn.com/en/wiki/Perl_warning_Setting_locale_failed_in_Debian]])
h3. Install missing packages
<pre>
# apt-get install gfortran swig
</pre>
h3. Installation of cfitsio library
Vesrion 3.37 (currently on sdo : 3.24)
<pre>
# wget ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/cfitsio3370.tar.gz
</pre>
Dés-archivage et décompression
<pre>
# tar -xzvf cfitsio3370.tar.gz
</pre>
Placez vous dans le répertoire /home/production/cftisio
su - root and :
<pre>
# ./configure --prefix=/usr/local
# make
# make install
</pre>
h2. Installation of postgresql
See the section : [[Test_Environment_-_Virtual_Machine_description#Manual-install-of-postgresql]]
h2. NetDRMS databases
on /DATABASES
(Note : section 2.4 dans doc netdrms first install)
<pre>
# mkdir data
# mkdir data_sums
# mkdir data_monitor
# chown postgres:postgres data
# chown postgres:postgres data_sums
# chown postgres:postgres data_monitor
</pre>
h3. Initialisation des 2 serveurs data et data_sums
En tant qu'utilisateur postgres
<pre>
# su - postgres
$ initdb --locale=C -D data -A md5 -W
(no password)
Success. You can now start the database server using:
postgres -D data
or
pg_ctl -D data -l logfile start
$ initdb --locale=C -D data_sums -A md5 -W
(no password)
Success. You can now start the database server using:
postgres -D data_sums
or
pg_ctl -D data_sums -l logfile start
$ initdb --locale=C -D data_monitor -A md5 -W
(no password)
Success. You can now start the database server using:
postgres -D data_monitor
or
pg_ctl -D data_monitor -l logfile start
</pre>
Edition des fichiers postgresql.conf pour configurer les bons ports d'écoute :
listen_addresses = '*'
data -> port 5432
data_sums -> port 5434
data_monitor -> port 5436
Edition des fichiers data*/pg_hba.conf : remplacer md5 par trust
<pre>
#"local"
local all all trust
#"IPv4"
host all all trust
</pre>
Démarrage des 3 bases :
<pre>
# su - postgres
$ cd /DATABASES
$ pg_ctl -D data -l ./PG_LOGS/data.log start
$ pg_ctl -D data_sums -l ./PG_LOGS/data_sums.log start
$ pg_ctl -D data_monitor -l ./PG_LOGS/data_monitor.log start
note :
PG_LOGS is the directory for logs
</pre>
createdb --locale C -E LATIN1 -T template0 ias_sdo
createdb --locale C -E LATIN1 -T template0 -p 5434 ias_sdo_sums
createdb --locale C -E LATIN1 -T template0 -p 5436 ias_sdo_monitor
h2. Installation de l'outil NetDRMS
On se base sur la doc dipsonible ici : [[http://inf-redmine.ias.u-psud.fr/redmine/attachments/download/114/Netdrms_First_Install.odt]]
Les sources sont dans : http://jsoc.stanford.edu/netdrms/dist/
/usr/local/netdrms_8.10/
(Pour comparaison avec le serveur en production, on copie également le dossier netdrms_2.4 de sdo)
on créé un lien symbolique netdrms_current qui pointe sur la dernière release
ln -s netdrms_8.10/ netdrms_current
Edition fichier config.local
<pre>
cp config.local.template config.local
</pre>
Creation de 2 répertoires :
<pre>
mkdir /usr/local/netdrms_8.10/logs/SUM
mkdir /usr/local/netdrms_8.10/logs/slony
</pre>
Voir le contenu du le fichier [[config.local]] à jour
Création d'un alias netdrms dans /root/.bashrc
<pre>
alias netdrms='cd /usr/local/netdrms_current'
</pre>
Lancement configure
<pre>
./configure
</pre>
h3. Modification du fichier /usr/local/netdrms_current/configure (Not Applied in NetDrms_8.10)
<pre>
# The system configuration for configure script
set PERLBIN = "/usr/bin/perl"
set PYBIN = "/usr/bin/python"
</pre>
h3. Compilation problem due to uncorrect variable types
Art (art.amezcua@stanford.edu) purpose us a workaround and send us 2 files with correct declaration :
SUMLIB_RmDo.pgc (diff with original file : [[diff_SUMLIB_RmDo.pgc]]) diff_SUMLIB_RmDo.pgc)
SUMLIB_RmDoX.pgc (diff with original file : [[diff_SUMLIB_RmDoX.pgc]]) diff_SUMLIB_RmDoX.pgc)
<pre>
# wget http://jsoc.stanford.edu/~arta/SUMLIB_RmDo.pgc
# wget http://jsoc.stanford.edu/~arta/SUMLIB_RmDoX.pgc
</pre>
Overwriting the existing files in the right place (base/sums/libs/pg), the command 'make' works well.
But there is still problem with 'make sums'
h3. Workaround to solve make sums problem
Modify [[sum_rpc.h]] in order to match the type of some variables
h3. Modification du fichier /usr/local/netdrms_current/build/jsoc_machine.csh
ligne 28 :
<pre>
case "x86_64":
echo linux_x86_64
breaksw
</pre>
h3. Copier /usr/local/netdrms_2.4_release/base/drms/apps/serverdefs.h dans /usr/local/netdrms_current/base/drms/apps
h3. Modification du fichier /usr/local/netdrms_current/configure
au lieu de $? en csh on va mettre plutot $status
ligne 110 :
<pre>
if ($status==0)
</pre>
et ligne 123 :
<pre>
if ($status==0)
</pre>
Lancement :
<pre>
./configure
</pre>
h3. Installation des libraries libtar-dev, libcurl3-dev et libecpg-dev
<pre>
apt-get install libtar libtar-dev
</pre>
<pre>
apt-get install libcurl3-dev
</pre>
<pre>
apt-get install libecpg-dev
</pre>
h3. #H4ck 2 Malade #PabloR0cks#
Modification du fichier /usr/include/stdint.h
ligne 55 : long int remplacé par long long int
<pre>
#if __WORDSIZE == 64
typedef unsigned long int uint64_t; --> ici long long int
#else
__extension__
typedef unsigned long long int uint64_t;
#endif
</pre>
"Allo Linus ?!?.."
h3. Compilation
<pre>
# make
# make sums
</pre>
NB : lib64 does not exist on debian 8. so ln -s /usr/lib lib64
h2. make sums KO
Solution found : Take old lib libcrypto instead libssl
dans le fichier base/sums/apps/Rules.mk ligne 51
replace -lssl by -lcrypto LD flag
h2. Installation de Jetty
Téléchargement du paquet jetty_install_kit_v1.4.2
<pre>
# cd /usr/local
# wget http://vso.tuc.noao.edu/VSO/slony_proxy/jetty_install_kit_v1.4.2.tar.gz
# tar xzvf jetty_install_kit_v1.4.2.tar.gz
# cd jetty_install_kit_v1.4.2
# ./install_jetty.sh
</pre>
Paramètres à modifier :
JETTY_GROUP= ias
JMD_INSTALL_DIR=/usr/local/jmd
JMD_SUPPORTING_SCRIPTS= /usr/local/jmd/vso/scripts
/usr/local/jmd/databases/derby
Cherche la commande ij
rajouter son chemin dans le path
vi ~/.bashrc
<pre>
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# Added by Elie for netdrms
#Modif Pablo 07/06/2010
PATH="$HOME/netdrms_current/bin/linux_x86_64:$PATH"
PATH="$HOME/netdrms_current/scripts:$PATH"
PATH="/usr/local/jmd/jetty/bin:$PATH"
PATH="/usr/local/jmd/vso/scripts:$PATH"
PATH="/usr/local/pgsql/bin:$PATH"
PATH="/usr/local/netdrms/scripts:$PATH"
#2014-12-17 Avec Herve et Pablo on pense que la ligne suivante est intutile as it is f.. install in /usr/local/lib
PATH="/home/production/cfitsio:$PATH"
#Done
DERBY_HOME=/usr/local/jmd/derby
export DERBY_HOME
export CVSROOT=:pserver:anonymous@solarch.tuc.noao.edu:2401/vtarc1/vso/cvsroot
#Added by Elie for jetty
PATH="/usr/local/jmd/derby/bin:$PATH"
</pre>
h2. TO BE DONE FURTHER
Suppression
/home/postgres/data
/home/postgres/data_sums
/home/postgres/data_monitor
Démarrage des 3 bases automatiquement
Installation de dblink pour postgres
h3. Modification du fichir config.local pour la souscription au jsoc
<pre>
# NetDRMS users can request subdirectories from the Stanford proj directories
# (e.g., JSOC/proj/util). These users will need to contact Stanford and obtain
# the source subdirectories desired. They will then place these subdirectories
# in the JSOC/proj directory of their NetDRMS release. To properly build
# targets in these subdirectories, using the JSOC make system, the user needs
# to add entries to this configuration file - one entry for each subdirectory
# that contains source code to be compiled. Each entry is a space-separated pair
# of strings: the string "PROJDIR" followed by a subdirectory (of the proj
# directory). For example:
#
# PROJDIR util/apps
# PROJDIR util/libs
#
# NOTE: It is not sufficient to list only a parent directory, like util. Source code
# in child directories will not automatically be compiled.
</pre>
h3. Python library for multi-threaded SUMS
Installation de la librairie python3.4m
h1. NetDRMS Installation
h2. Requirements
h3. Adding user production
<pre>
# adduser production
# addgroup ias
# adduser production ias
</pre>
h3. Configuring production environment
TBD
h3. sshagent to JSOC
TBD
h3. Mise en place de Privilèges pour le SUMS_MANAGER
Veuillez modifier le fichier /etc/sudoers afin que le user 'production' puisse exécuter le programme sum_chown que nous placerons plus loin dans le répertoire :usr/local/bin.
Cela se fait en ajoutant au fichier la ligne suivante :
production host=NOPASSWD:/usr/local/bin/sum_chmown
h3. Mise en place du fichier de mot de passe pour la base postgres
Veuillez créer le fichier .pgpass contenant les informations nécessaires au user 'production" afin qu'il se connecte sans mot de passe, en tant que 'production' ou 'postgres' aux 2 bases que l'on créera plus loin ias_sdo et ias_sdo_sums.
.pgpass content :
<pre>
sol-sdo1:5432:ias_sdo:production:
sol-sdo1:5434:ias_sdo_sums:production:
sol-sdo1:5432:ias_sdo:postgres:
sol-sdo1:5434:ias_sdo_sums:postgres
</pre>
h3. Install missing libraries
• libreadline-dev (but already installed with postgresql)
• libssl-dev
• libpam0g-dev
• libperl-dev
<pre>
# apt-get install $library_name
</pre>
where
_$library_name_ is the name of library
Then to update path on libraries, please type :
<pre>
# ldconfig
</pre>
h3. Reconfigure locale
<pre>
# dpkg-reconfigure locales
</pre>
select fr_FR.UTF8 UTF8 and unselect en_US.UTF-8
localedef -i en_US -f UTF-8 en_US.UTF-8
(see here : [[http://www.thomas-krenn.com/en/wiki/Perl_warning_Setting_locale_failed_in_Debian]])
h3. Install missing packages
<pre>
# apt-get install gfortran swig
</pre>
h3. Installation of cfitsio library
Vesrion 3.37 (currently on sdo : 3.24)
<pre>
# wget ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/cfitsio3370.tar.gz
</pre>
Dés-archivage et décompression
<pre>
# tar -xzvf cfitsio3370.tar.gz
</pre>
Placez vous dans le répertoire /home/production/cftisio
su - root and :
<pre>
# ./configure --prefix=/usr/local
# make
# make install
</pre>
h2. Installation of postgresql
See the section : [[Test_Environment_-_Virtual_Machine_description#Manual-install-of-postgresql]]
h2. NetDRMS databases
on /DATABASES
(Note : section 2.4 dans doc netdrms first install)
<pre>
# mkdir data
# mkdir data_sums
# mkdir data_monitor
# chown postgres:postgres data
# chown postgres:postgres data_sums
# chown postgres:postgres data_monitor
</pre>
h3. Initialisation des 2 serveurs data et data_sums
En tant qu'utilisateur postgres
<pre>
# su - postgres
$ initdb --locale=C -D data -A md5 -W
(no password)
Success. You can now start the database server using:
postgres -D data
or
pg_ctl -D data -l logfile start
$ initdb --locale=C -D data_sums -A md5 -W
(no password)
Success. You can now start the database server using:
postgres -D data_sums
or
pg_ctl -D data_sums -l logfile start
$ initdb --locale=C -D data_monitor -A md5 -W
(no password)
Success. You can now start the database server using:
postgres -D data_monitor
or
pg_ctl -D data_monitor -l logfile start
</pre>
Edition des fichiers postgresql.conf pour configurer les bons ports d'écoute :
listen_addresses = '*'
data -> port 5432
data_sums -> port 5434
data_monitor -> port 5436
Edition des fichiers data*/pg_hba.conf : remplacer md5 par trust
<pre>
#"local"
local all all trust
#"IPv4"
host all all trust
</pre>
Démarrage des 3 bases :
<pre>
# su - postgres
$ cd /DATABASES
$ pg_ctl -D data -l ./PG_LOGS/data.log start
$ pg_ctl -D data_sums -l ./PG_LOGS/data_sums.log start
$ pg_ctl -D data_monitor -l ./PG_LOGS/data_monitor.log start
note :
PG_LOGS is the directory for logs
</pre>
createdb --locale C -E LATIN1 -T template0 ias_sdo
createdb --locale C -E LATIN1 -T template0 -p 5434 ias_sdo_sums
createdb --locale C -E LATIN1 -T template0 -p 5436 ias_sdo_monitor
h2. Installation de l'outil NetDRMS
On se base sur la doc dipsonible ici : [[http://inf-redmine.ias.u-psud.fr/redmine/attachments/download/114/Netdrms_First_Install.odt]]
Les sources sont dans : http://jsoc.stanford.edu/netdrms/dist/
/usr/local/netdrms_8.10/
(Pour comparaison avec le serveur en production, on copie également le dossier netdrms_2.4 de sdo)
on créé un lien symbolique netdrms_current qui pointe sur la dernière release
ln -s netdrms_8.10/ netdrms_current
Edition fichier config.local
<pre>
cp config.local.template config.local
</pre>
Creation de 2 répertoires :
<pre>
mkdir /usr/local/netdrms_8.10/logs/SUM
mkdir /usr/local/netdrms_8.10/logs/slony
</pre>
Voir le contenu du le fichier [[config.local]] à jour
Création d'un alias netdrms dans /root/.bashrc
<pre>
alias netdrms='cd /usr/local/netdrms_current'
</pre>
Lancement configure
<pre>
./configure
</pre>
h3. Modification du fichier /usr/local/netdrms_current/configure (Not Applied in NetDrms_8.10)
<pre>
# The system configuration for configure script
set PERLBIN = "/usr/bin/perl"
set PYBIN = "/usr/bin/python"
</pre>
h3. Compilation problem due to uncorrect variable types
Art (art.amezcua@stanford.edu) purpose us a workaround and send us 2 files with correct declaration :
SUMLIB_RmDo.pgc (diff with original file : [[diff_SUMLIB_RmDo.pgc]]) diff_SUMLIB_RmDo.pgc)
SUMLIB_RmDoX.pgc (diff with original file : [[diff_SUMLIB_RmDoX.pgc]]) diff_SUMLIB_RmDoX.pgc)
<pre>
# wget http://jsoc.stanford.edu/~arta/SUMLIB_RmDo.pgc
# wget http://jsoc.stanford.edu/~arta/SUMLIB_RmDoX.pgc
</pre>
Overwriting the existing files in the right place (base/sums/libs/pg), the command 'make' works well.
But there is still problem with 'make sums'
h3. Workaround to solve make sums problem
Modify [[sum_rpc.h]] in order to match the type of some variables
h3. Modification du fichier /usr/local/netdrms_current/build/jsoc_machine.csh
ligne 28 :
<pre>
case "x86_64":
echo linux_x86_64
breaksw
</pre>
h3. Copier /usr/local/netdrms_2.4_release/base/drms/apps/serverdefs.h dans /usr/local/netdrms_current/base/drms/apps
h3. Modification du fichier /usr/local/netdrms_current/configure
au lieu de $? en csh on va mettre plutot $status
ligne 110 :
<pre>
if ($status==0)
</pre>
et ligne 123 :
<pre>
if ($status==0)
</pre>
Lancement :
<pre>
./configure
</pre>
h3. Installation des libraries libtar-dev, libcurl3-dev et libecpg-dev
<pre>
apt-get install libtar libtar-dev
</pre>
<pre>
apt-get install libcurl3-dev
</pre>
<pre>
apt-get install libecpg-dev
</pre>
h3. #H4ck 2 Malade #PabloR0cks#
Modification du fichier /usr/include/stdint.h
ligne 55 : long int remplacé par long long int
<pre>
#if __WORDSIZE == 64
typedef unsigned long int uint64_t; --> ici long long int
#else
__extension__
typedef unsigned long long int uint64_t;
#endif
</pre>
"Allo Linus ?!?.."
h3. Compilation
<pre>
# make
# make sums
</pre>
NB : lib64 does not exist on debian 8. so ln -s /usr/lib lib64
h2. make sums KO
Solution found : Take old lib libcrypto instead libssl
dans le fichier base/sums/apps/Rules.mk ligne 51
replace -lssl by -lcrypto LD flag
h2. Installation de Jetty
Téléchargement du paquet jetty_install_kit_v1.4.2
<pre>
# cd /usr/local
# wget http://vso.tuc.noao.edu/VSO/slony_proxy/jetty_install_kit_v1.4.2.tar.gz
# tar xzvf jetty_install_kit_v1.4.2.tar.gz
# cd jetty_install_kit_v1.4.2
# ./install_jetty.sh
</pre>
Paramètres à modifier :
JETTY_GROUP= ias
JMD_INSTALL_DIR=/usr/local/jmd
JMD_SUPPORTING_SCRIPTS= /usr/local/jmd/vso/scripts
/usr/local/jmd/databases/derby
Cherche la commande ij
rajouter son chemin dans le path
vi ~/.bashrc
<pre>
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# Added by Elie for netdrms
#Modif Pablo 07/06/2010
PATH="$HOME/netdrms_current/bin/linux_x86_64:$PATH"
PATH="$HOME/netdrms_current/scripts:$PATH"
PATH="/usr/local/jmd/jetty/bin:$PATH"
PATH="/usr/local/jmd/vso/scripts:$PATH"
PATH="/usr/local/pgsql/bin:$PATH"
PATH="/usr/local/netdrms/scripts:$PATH"
#2014-12-17 Avec Herve et Pablo on pense que la ligne suivante est intutile as it is f.. install in /usr/local/lib
PATH="/home/production/cfitsio:$PATH"
#Done
DERBY_HOME=/usr/local/jmd/derby
export DERBY_HOME
export CVSROOT=:pserver:anonymous@solarch.tuc.noao.edu:2401/vtarc1/vso/cvsroot
#Added by Elie for jetty
PATH="/usr/local/jmd/derby/bin:$PATH"
</pre>
h2. TO BE DONE FURTHER
Suppression
/home/postgres/data
/home/postgres/data_sums
/home/postgres/data_monitor
Démarrage des 3 bases automatiquement
Installation de dblink pour postgres
h3. Modification du fichir config.local pour la souscription au jsoc
<pre>
# NetDRMS users can request subdirectories from the Stanford proj directories
# (e.g., JSOC/proj/util). These users will need to contact Stanford and obtain
# the source subdirectories desired. They will then place these subdirectories
# in the JSOC/proj directory of their NetDRMS release. To properly build
# targets in these subdirectories, using the JSOC make system, the user needs
# to add entries to this configuration file - one entry for each subdirectory
# that contains source code to be compiled. Each entry is a space-separated pair
# of strings: the string "PROJDIR" followed by a subdirectory (of the proj
# directory). For example:
#
# PROJDIR util/apps
# PROJDIR util/libs
#
# NOTE: It is not sufficient to list only a parent directory, like util. Source code
# in child directories will not automatically be compiled.
</pre>
h3. Python library for multi-threaded SUMS
Installation de la librairie python3.4m