ATTENTION: toujours effectuer la commande "umask 2" pour liberer l'accès aux autres dévellopeurs
Comme le système d'installation est basé sur les commandes Docopies, Dolinks et interhome, il faut d'abord s'assurer de la disponibilités de ses scripts. Donc si besoin:
exemple avec "cp"
umask 2 mkdir ~/scripts cd ~/scripts cp /net/obsul2/export/home/weber/src/perl/Docopies.pl ./Docopies cp /net/obsul2/export/home/weber/src/perl/Dolinks.pl ./Dolinks mkdir $T4HOME/scripts cd $T4HOME/scripts cp /net/obsul2/export/home/weber/src/scripts/interhome ./interhome
Puis installation standard:
mkdir src cd src Docopies /net/obsul2/export/home/weber/src setenv ALPHA_ORG_DIR /net/obsul2/export/home/weber/src Full_install.csh
Installation partielle (exemple xaff):
cd src Docopies /net/obsul2/export/home/weber/src setenv ALPHA_ORG_DIR /net/obsul2/export/home/weber/src Full_install.csh xaff
Installation partielle (exemple perl+modules):
cd src Docopies /net/obsul2/export/home/weber/src setenv ALPHA_ORG_DIR /net/obsul2/export/home/weber/src Full_install.csh perl perl/LIBASTRO perl/LIBIPC
mkdir $T4HOME/scripts cd $T4HOME/scripts cp ~weber/src/scripts/interhome ./interhome
!!! remarque avant de finaliser cette FAQ
attention la mise a jour sour perl est mal gérée dans l'aobsolu il faut faire :
Docopies (simond) make Dolinks cd GOP Dolinks?? make rm perl/Makefile Docopies (weber) make Dolinks cd LIBIPC Docopies make Dolinks cd LIBASTRO Docopies make Dolinks ne pas faire les links avec Compile_lib ,c'est trop tard les Docpies ecrase les makefile...........!!!!!
mise a jour de ok:
Install_ok.csh sous root sur ouranos
Création des directories de base
L'installation peut se faire depuis un disque vierge ou sur un disque déjà en fonction. Seules les commandes nécessaires seront effecuées.
L'ensembles des directories de base se créent avec la commande:
$T4ROOT/beta/src/weber/Mkdir_T4
ou
$T4ROOT/ok/src/Mkdir_T4
Les scripts d'installation se trouve sous ~weber/src, On les accèdent avec la commande standard "Docopies".
Il faut effectuer toutes les opérations d'installations pour chaque environnement (beta et OK) et sous chaque OS (SunOS et Linux).
Ansi la séquence de création est la suivante:
A partir de ce moment, les développeurs peuvent installer leurs
directories en beta.
Mise à jour sous et entre différentes versions
Voir les exemples concrets en fin de document--->
La copie des applications entre les version "alpha" et "beta", et "beta" et "ok" est effectuée en fonction de listes définies pour chaque Operating System ($OPSYS) dans des fichiers.
Ces listes définissent deux groupes d'applications:
Les fichier sont nommés:
pour les applic. standards: "LISTE_APP_$OPSYS" ex: LISTE_APP_Linux_2.0 pour les applic. Inters: "LISTE_INT_$OPSYS" ex: LISTE_INT_SunOS_5.5
Elles contiennent le nom du devellopeur responsable de l'application et l'application. Exemple:
jolissai/wfa/ maire/t120/ simond/libamc/ t4/tele/ weber/gop/
Divers utilitaires les utilisent.
REMARQUES: Les listes et les utilitaires suivent la philosophie du projet et se propagent avec la commande Docopies. Leur directory de base est ~weber/src
Les utilitaires permettent de réaliser divers travaux, tel que:
Il travaillent par défaut avec les fichiers de liste mais on peut nommer les applications selon les priorités suivantes:
Attention, quelque soit le mode de travail utilisé, il est absolument nécessaire de posséder les fichiers de LISTE dans le directory courant car ces fichier servent de référence pour retrouver le nom du dévellopeur.
Exemple, si on tape "Install.csh gop", le script retrouve la ligne "weber/gop" et peut faire l'installation de manière adéquate, il sait où se trouve l'application.
Ces utilitaires peuvent être utilisé de manière identique pour les versions alpha, beta et ok. La seule contrainte est (pour leur utilisation en alpha) est que le dévellopeur ait installé ses applications sous ~/src.
Les utilitaires sont:
Remarque: les opérations sur la version "beta" se font naturellement uniquement sur vos fichiers. Dans ce cas, le scripts extrait (grep) les lignes contenant $USER.
Exemple, si Luc (Weber) fait "Make_inters" en "beta", la mise à jour se fait uniquement sur "ccd" et "spectro". Si Charles (Maire) le fait en "beta", la mise à jour porte sur "t120". Si n'importe qui le fait en "ok" c'est alors "ccd", "spectro" et "t120" qui sont mis à jour.
Il faut savoir que ces opérations ne peuvent se faire que depuis le bon directory. C'est à dire:
Remarque préliminaire: Les opérations citées ci-dessous sont à effectuer sous SunOS et sous Linux, cela signifie chaque fois deux login.
Deplus les commandes "ugtool t4" peuvent être remplacée par (notament sous Linux):
source /unige/obs/util/env/t4.csh
ugtool t4 cd $T4HOME/src Docopies $T4ROOT/beta/src/weber Full_install.csh
ugtool t4 cd $T4HOME/src Install.csh gop Update.csh
login weber ugtool t4_beta cd $T4HOME/src/weber Make_inters login maire ugtool t4_beta cd $T4HOME/src/maire Make_inters
login weber ugtool t4_beta cd $T4HOME/src/weber Full_install.csh
login weber ugtool t4_beta cd $T4HOME/src/weber Install.csh gop Update.csh login maire ugtool t4_beta cd $T4HOME/src/maire Update.csh login simond ugtool t4_beta cd $T4HOME/src/simond Update.csh login ...
Si la dépendence n'existe pas dans le Makefile, la séquence devient:
login weber ugtool t4_beta cd $T4HOME/src/weber Install.csh gop Update.csh login maire ugtool t4_beta cd $T4HOME/src/maire rm t120/t120_$OPSYS rm t120_srv/t120_srv_$OPSYS ... Update.csh login ...
ugtool t4 cd $T4HOME/src/ Full_install.csh xaff
ou (methode équivalente)
ugtool t4 cd $T4HOME/src/xaff Docopies $T4ROOT/beta/src/weber/xaff make Dolinks
ce qu'il faut savoir si on met à jour alpha, beta ou ok:
pour alpha:
dtterm -> rlogin glspc1 -> cd ~weber/src/spectro_srv -> make
pour beta:
dtterm -> rlogin glspc1 -> source /unige/obs/util/env/t4_beta.csh -> cd $T4HOME/src/weber/spectro_srv -> (Docopies ~weber/src/spectro_srv) -> make
pour ok:
dtterm -> rlogin glspc1 -> source /unige/obs/util/env/t4.csh -> cd $T4HOME/src/weber/spectro_srv -> (Docopies $T4ROOT/ok/src/spectro_srv) -> make
Il faut également une fenêtre root pour faire le setuid. Une seule fenêtre est nécessaire même si on met à jour plusieurs versions simultanément. En effet "setuid_root_for_spectro_srv.csh" fait les trois copies!
pour root:
dtterm -> rlogin glspc1 -> cd ~weber/src/spectro_srv -> su -> (!!!! attention "su" mais pas "su - root" !!!!!!) tcsh -> setuid_root_for_spectro_srv.csh
ATTENTION: il faut biensûr relancer le script
"setuid_root_for_spectro_srv.csh" apres chaque make!
Installation de beta/src/maire
dans /home/simond/T120/scripts
il y a un script install_beta qui fait tout
desole mais je croit qu'il marche a l'envers de Docopies
il faut etre dans le repertoire source et faire
/home/simond/T120/scripts/install_beta dstdir
Intallation de beta/src/weber
rem: Il faut le mot de passe de root pour installer spectro_srv
Sur sun (ouranos):
Sur glspc1 (obligatoire pour coralie):
Attention, sous Linux les applications ne doivent pas tourner pour que le link aie lieu. source /unige/obs/util/env/t4_beta.csh cd $T4HOME/src/weber Docopies ~weber/src Mkdir_T4.csh Full_install.csh - verifier le dernier listing des links cd spectro_srv su root (attention pas faire: "su - root" !!!!) setuid_root_for_spectro_srv.csh - répondre "y" aux trois "cp: overwrite ?" exit dolinks_for_spectro_srv.csh
rem: Il faut le mot de passe de root pour installer spectro_srv
Sur sun (ouranos):
Sur glspc1 (obligatoire pour coralie):
Attention, sous Linux les applications ne doivent pas tourner pour que le link aie lieu. source /unige/obs/util/env/t4.csh cd $T4HOME/src Docopies $T4ROOT/beta/src/weber Mkdir_T4.csh Full_install.csh - verifier le dernier listing des links cd spectro_srv su root (attention pas faire: "su - root" !!!!) setuid_root_for_spectro_srv.csh - répondre "y" uniquement au "cp: overwrite ?" de la version ok exit dolinks_for_spectro_srv.csh
Le spectro_srv doit tourner en mode setuid pour root.
La raison est que spectro_srv accède les ports d'entrée/sortie qui sont inaccessibles aux utilisateurs communs.
Linux ne connaissant que son propre "root", l'exécutable de spectro_srv doit être sur un disque local du PC.
Habituellement les links sur les exécutables se font sur $T4HOME/bin/$OPSYS/ et pointent sur la structure $T4HOME pour beta et ok ou chez le dévellopeur du produit pour la version alpha.
Comme le l'exécutable doit être sur le disque du PC, les exécutables sont mis dans le file system du PC sous /spectro_srv. On a donc (ex):
/spectro/alpha/spectro_srv_Linux_2.0 /spectro/beta/spectro_srv_Linux_2.0 /spectro/ok/spectro_srv_Linux_2.0
les links sous $T4HOME/bin/Linux_2.0 vont vers ces fichiers.
Naturellement, les links pour Sun restent standards.
Ainsi la compilation, le make fabrique les links spécifiques pour Linux avec le script:
dolinks_for_spectro_srv.csh
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Ce script est à appeler manuellement apres une installation générale car
malheureusement, les installation genérales fabriquent les links vers les
directories standard
Donc si le make fabrique un nouvel exécutable, les links sont fait correctement
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Apres une compilation, le mode d'exécution de l'exécutable doit être mis en setuid root avec le script:
setuid_root_for_spectro_srv.csh
L'opération doit être faite sous root. Le script place les exécutables (alpha, beta et ok) dans les directories /spectro/XXX et les mets en setuid root. L'opérateur est questionné pour effectuer la copie. Habituellement on ne copie que la version que l'on vient de modifier (on sait jamais). Exemple pour un mise à jour de alpha:
[weber@glspc1 spectro_srv]# setuid_root_for_spectro_srv.csh cp: overwrite `/spectro/alpha/spectro_srv_Linux_2.0'? y cp: overwrite `/spectro/beta/spectro_srv_Linux_2.0'? n cp: overwrite `/spectro/ok/spectro_srv_Linux_2.0'? n
Attention, sous Linux, on ne peut pas modifier (copier par exemple) un programme en cours d'exécution. Ainsi, si l'Inter-Coralie est connecté sur spectro_srv, on aura le message suivant:
[weber@glspc1 spectro_srv]# setuid_root_for_spectro_srv.csh cp: overwrite `/spectro/alpha/spectro_srv_Linux_2.0'? y cp: cannot create regular file `/spectro/alpha/spectro_srv_Linux_2.0': Text file busy
Dans ce cas, il fait effectuer un "spectro /quit" sur l'Inter-Coralie et relancer le script.