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
Redistribuable
en GPL
Ok
Redistribuable
en GPL
Très connus et très utilisé.
Version stable 3.23.
Compatible JBDC 2.0
http://www.mysql.org/
InstantDB
Redistribuable
avec accord
Non gratuit si
non GPL
Redistribuable
avec accord
Non gratuit si
non GPL
Déjà testé avec Démo
d’alarm.
Designed for Java
PostGreSQL
Ok avec
cygnus
Redistribuable
Ok
Redistribuable
Version 7.2
BD Objet
http://www.fr.postgresql.org/
GNU SQL Server
Non
Ok
Redistribuable
Pas d’évolution depuis Sept.
1998
InterBase
Redistribuable
avec accord
Non gratuit si
non GPL
Redistribuable
avec accord
Non gratuit si
non GPL
Produit OpenSource Borland
mSQL
Non
Ok
Version 2.0.12
http://www.hughes.com.au/
MacKoi SQL DB
Ok
Redistribuable
Ok
Redistribuable
Beta Version 0.92
BD Java Object
http://mckoi.com/database/
Berkeley DB
Ok
Redistribuable
en GPL
Ok
Redistribuable
en GPL
Version 4.0.14
http://www.sleepycat.com/in
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 é
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
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !