JOnAS

publicité
Packaging JOnAS version 2
1. Détermination des composants à packager :
a. Choix de la base de données (à packager)
Base de données
Windows
Linux
Commentaires
MySQL
Ok
Ok
Très connus et très utilisé.
Redistribuable Redistribuable Version stable 3.23.
en GPL
en GPL
Compatible JBDC 2.0
http://www.mysql.org/
InstantDB
Redistribuable Redistribuable Déjà testé avec Démo
avec accord
avec accord
d’alarm.
Non gratuit si Non gratuit si Designed for Java
non GPL
non GPL
PostGreSQL
Ok avec
Ok
Version 7.2
cygnus
Redistribuable BD Objet
Redistribuable
http://www.fr.postgresql.org/
GNU SQL Server Non
Ok
Pas d’évolution depuis Sept.
Redistribuable 1998
InterBase
Redistribuable Redistribuable Produit OpenSource Borland
avec accord
avec accord
Non gratuit si Non gratuit si
non GPL
non GPL
mSQL
Non
Ok
Version 2.0.12
http://www.hughes.com.au/
MacKoi SQL DB Ok
Ok
Beta Version 0.92
Redistribuable Redistribuable BD Java Object
http://mckoi.com/database/
Berkeley DB
Ok
Ok
Version 4.0.14
Redistribuable Redistribuable http://www.sleepycat.com/in
en GPL
en GPL
dex.html
…
Le choix et le mode de packaging reste à déterminer
b. Tomcat à packager ou non
La version courante est la version 3.2.3. Faut-il le packager avec JOnAS ? Des RPMs
existent déjà ; le mieux est d’ajouter une dépendance du RPM de JOnAS avec
tomcat.
c. JOnAS + dépendances
Pour compiler, les dépendances sont :
- jdk 1.2 minimum installée => la variable $JDKDIR doit indiquer
le répertoire d’installation de java. Sinon, par défaut le répertoire
/usr/java1.2 est pris
-
tomcat installé => la variable $TOMCAT_HOME doit indiquer
le répertoire d’installation de tomcat. La compilation est stoppée
si cette variable n’est pas initialisée.
Pour l’exécution de jonas, les dépendances sont :
- jdk 1.2 minimum installée => la variable $JAVA_HOME doit
indiquer le répertoire d’installation de java. (Pas obligatoire si
java est dans le path).
- tomcat installé => la variable $TOMCAT_HOME doit indiquer
le répertoire d’installation de tomcat (Pas obligatoire si tomcat
n’est pas utilisé).
- une base de données => voir la liste des variables des databases
2. Détermination des cibles d’installation : OS et plateformes
Les 2 plateformes visées sont Windows et Linux dans un premier temps.
Pour Linux, le format de package standard est le format RPM (Redhat Package
Manager) qui est utilisé par 90% des distributions.
Pour Windows, un outil comme InstallShield peut être envisagé.
3. Packaging RPM
*Que permet de faire RPM ?
a. installer un package en vérifiant les dépendances, les plateformes cibles,
les versions déjà installées …
rpm –ivh jonas-2.4.0-1-i686.rpm sous root
b. désinstaller un package en ne supprimant pas les fichiers de configuration
modifiés, en vérifiant que la désinstallation ne casse pas des dépendances
…
rpm –e jonas-2.4.0 sous root
c. mise à jour d’un package pour installer une version plus récente, réinstaller
des fichiers effacés …
rpm –Uvh jonas-2.4.0-1-i686.rpm
d. Vérifier un package
rpm –V jonas-2.4.0
*Comment faire un RPM ?
Un simple fichier de spécification appelé « spec file » est à créer.
Deux possibilités :
 La manière la plus simple mais pas la plus propre est de partir d’un tar
contenant les binaires et d’inclure la liste des fichiers du tar en ajoutant les
dépendances, le numéro de version etc… Le problème, c’est qu’il ne s’agit
pas des sources et qu’il est donc impossible de recompiler.
 La manière classique est de partir d’un tar contenant les sources et de
laisser rpm le compiler. Dans ce cas, deux fichiers sont générés :
a. un fichier <package>-<numéro>-<release>-<architecture>.rpm qui
contient les binaires
b. un fichier <package>-<numéro>-<release>-src.rpm qui contient les
sources qu’il est possible de recompiler avec une commande rpm
*Ce qui a été réalisé et comment
La plateforme utilisée est un Linux Mandrake 7.2. BI-PIII 866 Mhz
RPM est en version 3.0.5.
Java est en version 1.2.2 et variable $JDKDIR initialisée
Tomcat en version 3.2.3 installé et variable $TOMCAT_HOME initialisée (pour la
dépendance avec servlet.jar)
1. Se mettre sous root
2. Placer le tar avec les sources sous /usr/src/RPM/SOURCES pour Mandrake ou
sous /usr/src/redhat/SOURCES pour Redhat
3. Placer les patchs avec les sources sous /usr/src/RPM/SOURCES pour
Mandrake ou sous /usr/src/redhat/SOURCES pour Redhat
4. Placer le « spec file » sous /usr/src/RPM/SPECS ou sous
/usr/src/redhat/SPECS sous Redhat
5. Se placer à l’endroit du « spec file » et lancer la construction des rpms par la
commande : rpm –ba <specfile>
6. Lorsque c’est terminé, le RPM des binaires se trouve sous sous
/usr/src/RPM/RPMS pour Madrake ou sous /usr/src/redhat/RPMS pour Redhat
et le RPM des sources se trouve sous sous /usr/src/RPM/SRPMS pour
Madrake ou sous /usr/src/redhat/SRPMS pour Redhat
7. Installer les binaires par la commande :
rpm –ivh ../RPMS/<package>-<version>-<release>-<architecture>.rpm
8. Désintaller le package par la commande :
rpm –e <package>-<version>
1. JOnAS 2.4.0
a. Spec file 2.4.0-1
 Choix effectués
Je suis reparti du specfile de Stephane Fresnot en incluant la partie compilation.
Le choix du groupe d’appartenance du package de jonas a été conservé : c’est
System Environment/Daemons
L’installation de jonas se fait comme il est conseillé dans le répertoire
/usr/local/jonas
J’ai rajouté la description du package telle qu’elle est préconisée en standard (url
des sources, packager, version …)
Le fichier tar contenant les sources provient de jonas version 2.4.0 et se nomme
jonas_src.tgz. La structure de ce tar ne convient pas tout à fait, j’ai donc rajouté un
petit script avant la compilation (dans la partie %pre) qui le transforme.
Pour la compilation, c’est très simple, il suffit de placer la variable
$OBJECTWEB_HOME et de faire un make. En réalité, deux compilations sont
réalisées, une avec l’ORB RMI et l’autre avec JEREMIE. Ensuite la javadoc est
générée (partie %build).
Pour l’installation, il suffit de placer la variable $JONAS_ROOT et de faire un
make install (partie %install).
 Liste des fichiers
Voici les fichiers de configuration que j’ai choisi :
/usr/local/jonas/config/InstantDB1.properties
/usr/local/jonas/config/InterBase1.properties
/usr/local/jonas/config/Oracle1.properties
/usr/local/jonas/config/PostgreSQL1.properties
/usr/local/jonas/config/a3servers.xml
/usr/local/jonas/config/jonathan.xml
/usr/local/jonas/config/java.policy
/usr/local/jonas/config/jndi.properties
/usr/local/jonas/config/jonas-users.properties
/usr/local/jonas/config/jonas.properties
/usr/local/jonas/config/trace.properties
/usr/local/jonas/gmk/config.mk
/usr/local/jonas/bin/nt/config_env.bat
/usr/local/jonas/bin/unix/config_env
Ces fichiers seront sauvegardés si le package est supprimé et qu’ils ont été
modifiés. Ils ne seront pas écrasés lors d’une mise à jour de package.
Voici les fichiers et répertoires de documentation :
/usr/local/jonas/LicenceAgreement.txt
/usr/local/jonas/ReleaseNotes.txt
/usr/local/jonas/doc
/usr/local/jonas/jdoc
Ces fichiers sont marqués comme étant de la documentation.
Le reste est des fichiers normaux.
Tout est disponible sur http://ramses/jonas.htm
b. Spec file 2.4.0-2
 Choix effectués
Idem Spec file 2.4.0-1
Prise en compte des remarques de François Exertier
Copyright changé en OPL/JPL
Champ Description modifié
 Liste des fichiers
Idem Spec file 2.4.0-1
c. Spec file 2.4.0-3
 Choix effectués
Idem Spec file 2.4.0-2
Prise en compte des remarques de Nicolas Christin
a) Définition de variables décrivant l’arborescence de JOnAS telles que :
JONAS_SRC = jonas_src
Nom du tarball contenant les sources
JONAS_DIR = /usr/local/jonas
Répertoire d’installation de JOnAS
JONAS_DOC_DIR = /usr/share/doc
Répertoire d’installation de la
documentation de JOnAS
JONAS_CONF_DIR = /etc/jonas
Répertoire d’installation des fichiers de
configuration de JOnAS
JONAS_LIB_DIR = /usr/lib/jonas
Répertoire d’installation des librairies de
JOnAS
JONAS_BIN = /usr/bin
Répertoire d’installation des binaires de
JOnAS
Pour ne pas avoir à modifier les makefiles, les scripts … de JOnAS et respecter au
plus près le FHS ; voici les compromis qui ont été effectués :
Dans le répertoire JONAS_DIR se trouve tous les fichiers de JOnAS à l’exception
de la documentation => répertoires doc et jdoc
Dans le répertoire JONAS_DOC_DIR se trouve les répertoires doc et jdoc et les
fichiers ReleaseNotes.txt et LicenceAgreement.txt (ces 2 fichiers se trouvent aussi
sous JONAS_DIR)
Dans le répertoire JONAS_CONF_DIR se trouve des liens durs vers les fichiers
de configuration (cf liste des fichiers - section %config). Ainsi, ces fichiers
peuvent être éditer directement sous JONAS_CONF_DIR mais reste aussi
présents sous JONAS_DIR.
Dans le répertoire JONAS_LIB_DIR se trouve des liens symboliques vers les jar
sous JONAS_DIR/lib.
Dans le répertoire JONAS_BIN se trouve des liens symboliques vers les fichiers
sous JONAS_DIR/bin/unix.
b) Ajout de la vérification des prérequis de compilation :
Variable TOMCAT_HOME settée (bloquant)
Variable JDKDIR settée (non bloquant)
c) Inversion de l’ordre de la compilation :
Compilation pour JEREMIE
Compilation pour RMI
Javadoc
d) La variable JONAS_ROOT est initialisée dynamiquement dans les scripts sous
le répertoire JONAS_DIR/bin/unix
e) Modification de l’ordre d’installation des fichiers
Installation pour JEREMIE
Installation pour RMI
Installation de la documentation
f) A la post installation, création des liens symboliques et des liens durs
g) A la pré-uninstallation, suppression des liens symboliques
h) A la post-unistallation, suppression des liens durs vers les fichiers de
configuration s’ils ont été supprimés (donc non modifiés).
 Liste des fichiers
Idem Spec file 2.4.0-2
Ajout des préfixes des variables décrivant l’arborescence de JOnAS
2. JOnAS 2.4.3
a. Spec file 2.4.3-1
 Choix effectués
Idem Spec file 2.4.0-3
a) A l’installation, création du répertoire JONAS_DIR qui n’existent pas => dû à
la modification d’un makefile de JOnAS dans cette version
b) Ajout d’un message à la suite de l’installation qui indique de vérifier
l’installation de Java (variable d’environnement JAVA_HOME notamment)
 Liste des fichiers
Idem Spec file 2.4.0-3
Ajout des répertoires :
JONAS_DIR/examples/output
JONAS_DIR/examples/output/webapps
Ajout des fichiers :
JONAS_DIR/bin/template/SHome.java
JONAS_DIR/examples/build.properties
JONAS_DIR/examples/build.xml
JONAS_DIR/examples/alarm/db1.prp
JONAS_DIR/examples/alarm/web/images/alarmArchi.gif
JONAS_DIR/examples/alarm/web/secured/removefilter.jsp
JONAS_DIR/examples/output/webapps/README
JONAS_DIR/examples/src/eb/db1.prp
b. Spec file 2.4.3-2
JOnAS est lancé au démarrage de la machine
=> Ajout du patch « jonas-2.4.3-bootstartup.patch » qui contient 2 fichiers :
JONAS_DIR/startup/jonas permet de lancer et d’arrêter jonas via les commandes
jonas stop et jonas start. Ce fichier est installé sous /usr/bin.
JONAS_DIR/startup/bin/jonas permet de démarrer jonas au démarrage de la
machine. Ce fichier est installé sous /etc/rc.d/init.d. Il fait appel au fichier
/usr/bin/jonas. Un fichier de lock « jonas » contenant le PID est créé sous
/var/lock/subsys au démarrage. Un fichier de log « jonas.log » est créé sous
/var/log.
 Choix effectués
Idem Spec file 2.4.3-1
a) Ajout des 2 variables pour le patch. Une variable pour le répertoire
d’installation et une autre pour le nom du fichier patch
b) Ajout de la vérification du fichier tarball contenant les sources et du fichier
patch avant la compilation
c) Installation du patch sur les sources
d) Installation du javadoc entre l’installation pour JEREMIE et RMI
e) Installation du script de boot jonas sous /etc/rc.d/init.d et du script de lancement
jonas sous /usr/bin
f) A la pré-uninstallation, arrêt de JOnAS s’il est démarré avant la désinstallation
 Liste des fichiers
Idem Spec file 2.4.3-1
Ajout des répertoires :
JONAS_DIR/startup
JONAS_DIR/startup/bin
Ajout des fichiers :
JONAS_DIR/startup/jonas
JONAS_DIR/startup/bin/jonas
 Installation
[root@mazuk SPECS]# rpm -ivh jonas-2.4.3-2.i686.rpm
jonas
##################################################
Don't forget to set JAVA_HOME in /etc/rc.d/init.d/jonas to your
JDK/JRE directory since we didn't have these info at boot time.
Don't forget to check the java JVM is in the path or the JAVA_HOME
environment variable is set to your JDK/JRE directory.
As supplied we assume you're using Java JVM >= 1.2
 Editer le fichier /etc/rc.d/init.d/jonas et placer la variable $JAVA_HOME pour
que JOnAS se lance au démarrage de la machine.
 Démarrage manuel
[root@mazuk SPECS]# jonas start
Start JOnAS
[root@mazuk SPECS]# jonas stop
EJBServer jonas stopped
 Au démarrage de la machine, on a :
[root@mazuk SPECS]# /etc/rc.d/init.d/jonas start
Starting JOnAS:
[ OK ]
[root@mazuk SPECS]# /etc/rc.d/init.d/jonas stop
Shutting down JOnAS:
[ OK ]
Téléchargement