Présentation et installation de Dimdim sur Debian Lenny
Un mission de mon stage a été de mettre en place la version Open Source de Dimdim (4.5) sur un serveur Debian Lenny. Cela a été très compliqué car absolument aucune documentation n'était disponible et le seul paquet utilisable était un RPM pour CentOS, bref, l'enfer.
Après 2 semaines complètes passées sur ce projet, tout fonctionne correctement. J'ai donc décidé de partager mon experience afin d'aider les personnes voulant mettre en place ce système chez eux.
I. Présentation
Dimdim est une application intranet-internet de réunion à distance, à l’instar de logiciels comme Netmeeting ou Ekiga. Ainsi, il est possible de diffuser la voix de trois personnes au maximum sur tous les clients, ou de voir la caméra du maître de conférence. Ce dernier peut choisir, en outre, d’afficher :
- son écran
- un tableau blanc
- un document au format PDF
- un document au format PowerPoint
Comme toujours, un dessin valant mieux qu'un long discours, voici un screenshot de la page principale du maître de conférence (ici je j'ai pas de webcam, normalement, elle devrait apparaître en bas à gauche de l'écran :
Vous pouvez également voir quelques vidéos de démonstration de Dimdim sur la page dédiée du site officiel. Attention touefois, les vidéos présentées sont celles de la version 5 qui n'est pas Open Source. Nous installerons la version 4.5. Les différences sont minimes (quelques widgets, des plus pour facebook, ...).
II. Open Source ?
Cette partie est un petit coup de gueule contre Dimdim (et je suis loin d'être le seul à le penser) ainsi que mon histoire avec Dimdim. Si vous voulez juste connaitre la procédure d'installation, rendez-vous directement au chapitre suivant.
Dimdim est, à l'origine, une solution commerciale. Il existe plusieurs versions :
- Une version 5 gratuite (non libre) accessible sur le site de Dimdim uniquement limitée à 20 personnes simultanées
- Une version 5 Pro (19$ par mois) accessible sur le site de Dimdim uniquement limitée à 50 personnes simultanées
- Une version 5 Entreprise à (11400$ par an) accessible sur le site de Dimdim uniquement limitée à 1000 personnes simultanées
- Une version 4.5 Open Source (sous licence GPL) qui n'est pas bridée au niveau des utilisateurs (mais à d'autres niveaux)
Leur politique est claire : Nous voulons bien vous mettre à disposition une version Open Source mais nous n'assurons absolument aucun support technique (ce qui est compréhensible).
Je me rends donc sur la page Sourceforge du projet Dimdim Open Source afin d'aller chercher un paquet Debian (enfin je pensais en trouver un).
Là, première désillusion, aucun paquet Debian n'est disponible, uniquement un paquet prévu pour CentOS (RPM) de la version 4.5 (la dernière version Open Source), une image vmware de cette même version (basée sur CentOS également) et les sources de la version 4.1 !
"Euh...ouai, c'est tout ?"
Bon, je me décide à télécharger les sources de la 4.1 (cette version ne doit pas être trop différente de la version 4.5 me dis-je). Je télécharge donc l'archive, l'extrait sur mon serveur, et là, la cerise sur le gâteau : aucune doc, aucun readme, aucune procédure d'installation, bref, rien de rien ! Je savais qu'ils n'assuraient aucun support mais là, j'ai été vraiment déçu.
Je vais chercher de l'aide sur le forum Open Source du site Dimdim : rien ! A chaque question du genre : "Comment compiler et installer les sources", les réponses étaient toujours : "Ne t'embête pas avec les sources, utilise l'image vmware, elle fonctionne très bien" ou, venant des personnes de chez Dimdim, "utilisez notre version gratuite sur notre site Web, tout fonctionne". Bref, moi je dis que quitte à mettre à disposition une version Open Source, autant qu'ils le fassent bien non ? Pour moi, ils ont mis à disposition cette version uniquement pour se faire un peu de publicité...
Voila un peu le contexte des mes premiers jours avec Dimdim, comme vous pouvez le voir, ce n'était pas très du tout encourageant !
Mes recherches sur Internet n'ont également rien données. Bref, j'étais la, avec mes sources sans aucun support !
Je précise que ces sources n'étaient pas celles habituelles (du genre ./configure, make, make install
). Dimdim étant un mélange de plusieurs technologies avec beaucoup de logiciels embarqués différents (Tomcat car beaucoup de Java, Nginx pour faire office de reverse proxy, perl, python, ...). Bref, une grosse galère !
Après des heures et des heures de recherches infructueuses, je télécharge le paquet RPM à l'origine prévu pour CentOS que je converti grâce au logiciel alien. J'obtiens donc un paquet deb que j'arrive à installer. Malheureusement, tous les liens sont différents (car prévus pour CentOS) et, pour couronner le tout, je n'ai que très très peu de logs !
J'ai donc, après une semaine de recherches, de modifications, de réinstallation, mis en place l'image vmware fonctionnelle pour pouvoir comparer les fichiers entre les deux versions...Un vrai travail de fourmis !
Bon, je vous passe les autres détails, j'ai mis pas loin de deux semaines à temps plein pour obtenir un Dimdim fonctionnel sous Debian. Comme j'aurais vraiment voulu avoir un tutoriel digne de ce nom, j'ai décidé de vous en faire un (c'est pas gentil ça) :)
Ce tutoriel est très complet, il explique toutes les étapes, pas à pas, d'une installation Dimdim sur une Debian Lenny. Je l'ai utilisé trois fois pour une installation sur un système vièrge et ai donc pu le paufiner pour que tout fonctionne parfaitement.
III. Installation
! ! My english version of this how-to was added here, you can correct it if you see some mistakes ! !
Prérequis
Quelques logiciels supplémentaires sont nécessaires à l'utilisation de Dimdim. Voici ces différents logiciels et la manière de les installer :
Openoffice.org 3
Rendez-vous sur la page de téléchargement officielle d'OpenOffice :
http://download.openoffice.org/other.html
Puis téléchargez un paquet DEB, par exemple, à cette adresse :
http://openoffice.cs.utah.edu/localized/fr/3.0.1/OOo_3.0.1_LinuxIntel_install_fr_deb.tar.gz
On enregistre cette archive dans notre répertoire personnel (par exemple) puis :
su
(nous allons faire
toute l'installation de Dimdim en root)
cd ~
(le chemin
doit être celui où se trouve votre paquet DEB)tar xvf
Ooo_3.0.1_LinuxIntel_install_fr_deb.tar.gz
cd
OOO300_m15_native_packed-1_fr.9379/DEBS/
dpkg -i *.deb
Java v1.6
apt-get
install sun-java6-bin
Nous allons ensuite modifier les variables d'environnement de notre système
echo "JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.12"
>> /root/.bashrc
echo "export JAVA_HOME" >>
/root/.bashrc
Déconnectez-vous de root et
reconnectez-vous (afin d'initialiser la variable JAVA_HOME)
echo
"PATH=$JAVA_HOME/bin:$PATH" >> /root/.bashrc
echo
"export PATH" >> /root/.bashrc
Déconnectez-vous
de root et reconnectez-vous (afin de ré-initialiser la
variable PATH)
Tapez
la commande "env", vous devez avoir ces lignes
:
PATH=/usr/lib/jvm/java-6-sun-1.6.0.12/bin:/bin:.........
JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.12
Autres programmes
apt-get
install gawk
apt-get install python-uno python2.5-dev
apt-get
install unzip
apt-get install openoffice.org-java-common
openoffice.org-headless
apt-get
install bin-utils build-essential
Modules Python
Nous allons ajouter quelques modules nécessaires pour l'utilisation de Dimdim :
CherryPy
Répertoire de téléchargement : http://download.cherrypy.org/cherrypy/
wget
http://download.cherrypy.org/cherrypy/3.1.0/CherryPy-3.1.0.zip
unzip
CherryPy-3.1.0.zip
cd CherryPy-3.1.0
chmod +x *
python2.5
setup.py install
python2.5
>>>import
cherrypy
>>>
Ctrl+D
Flup
Répertoire de téléchargement : http://www.saddi.com/software/flup/dist/
wget
http://www.saddi.com/software/flup/dist/flup-1.0.tar.gz
tar
xvf flup-1.0.tar.gz
cd flup-1.0
chmod +x *
python2.5
ez_setup.py -U setuptools
python2.5 setup.py
install
python2.5
>>>import flup
>>>
Ctrl+D
Pycurl
Répertoire de téléchargement : http://curl.haxx.se/download/
wget
http://curl.haxx.se/download/curl-7.19.0.tar.gz
tar
xvf curl-7.19.0.tar.gz
cd curl-7.19.0
./configure
make
make
install
ln -s
/usr/local/lib/libcurl.so.4 /usr/lib/libcurl.so.4
(le fichier peut
déjà être présent, dans ce cas, il faut
effacer l'ancienne librairie et mettre le lien de la
nouvelle) easy_install-2.5 pycurl
cd
..
python2.5
>>>import pycurl
>>>
Ctrl+D
demjson
Répertoire de téléchargement : http://deron.meranda.us/python/demjson/dist/
wget
http://deron.meranda.us/python/demjson/dist/demjson-1.3.tar.gz
tar
xvf demjson-1.3.tar.gz
cd demjson-1.3
chmod +x *
python2.5
setup.py install
python2.5
>>>import
demjson
>>>
Ctrl+D
Téléchargement et installation de Dimdim
Bien que nous soyons sur une Debian, nous allons télécharger le paquet RPM pour CentOS et non les sources du logiciel.
Répertoire de téléchargement : http://sourceforge.net/project/showfiles.php?group_id=176809&package_id=301331
Rendez-vous donc à cette adresse :
http://sourceforge.net/project/showfiles.php?group_id=176809&package_id=301331&release_id=644543
afin
de télécharger cette archive
:
Dimdim_RPM_Package_CentOS_5.2_v4.5.zip
unzip
Dimdim_RPM_Package_CentOS_5.2_v4.5.zip
apt-get install
alien
cd Dimdim_RPM_Package_v4.5/
alien
Dimdim-4.5_SF_i386.rpm
dpkg -i dimdim_4.5-2_i386.deb
mv
/usr/local/dimdim-4.5/ /usr/local/dimdim
cd
/usr/local/dimdim/
tar xvf CobrowsingManager.tar.gz
Modifiactions et derniers réglages
Attributions des droits d'exécution
chmod +x
/usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/bin/*
chmod
+x /usr/local/dimdim/red5/*
chmod +x
/usr/local/dimdim/red5/conf/*
chmod +x
/usr/local/dimdim/nginx/sbin/*
chmod +x
/usr/local/dimdim/DTP3/Reflector/*
chmod +x
/usr/local/dimdim/Mediaserver/mods/*
chmod +x
/usr/local/dimdim/Mediaserver/www/pages/*
chmod +x
/usr/bin/*
chmod +x /usr/lib/*
chmod +x
/usr/local/share/*
chmod +x CobrowsingManager/cob/*
chmod +x
StartDimdim.sh
chmod +x StopDimdim.sh
chmod +x
Config-ipaddress.pl
Modifications des fichiers
/usr/local/dimdim/Mediaserver/mods/toolkit/osconfig.py
Remplacer
: return os.path.dirname('/opt/openoffice.org2.4/program/')
Par :
return os.path.dirname('/opt/openoffice.org3/program/')
/usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/conf/wrapper.conf
Remplacer :
wrapper.java.command=DIMDIM_JAVA_HOME/bin/java
Par :
wrapper.java.command=/usr/lib/jvm/java-6-sun-1.6.0.12/bin/java
/usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/conf/server.xml
Remplacer : <Connector port="DIMDIM_PORT_NUMBER"
maxHttpHeaderSize="8192"
Par : <Connector address="127.0.0.1"
port="40000" maxHttpHeaderSize="8192"
/usr/local/dimdim/Stopdimdim.sh
Remplacer : cd
/usr/local/dimdim-4.5/ConferenceServer/apache-tomcat-5.5.17/bin/
Par
: cd /usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/bin/
/usr/local/dimdim/Startdimdim.sh
Remplacer : cd
/usr/local/dimdim-4.5/ConferenceServer/apache-tomcat-5.5.17/bin/
Par
: cd /usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/bin/
/usr/local/dimdim/Mediaserver/mods/interface.py
Remplacer
: #!/usr/bin/python2
Par : #!/usr/bin/python2.5
/usr/local/dimdim/CobrowsingManager/cob/startCobServer.sh
Remplacer :
/usr/local/bin/python2.5
Par
: /usr/bin/python2.5
Dernières modifications
ln
-s /usr/lib/libpcre.so.3 /usr/lib/libpcre.so.0
cp
Mediaserver/mods/spawn-fcgi DTP3/Reflector/spawn-fcgi
Vérifions
nos binaires d'OpenOffice (pour le partage des PPT): ls
-l /usr/bin/so*
Nous
devrions avoir uniquement cette ligne :
lrwxrwxrwx 1
root root 40 nov 27 13:04 /usr/bin/soffice.bin ->
/opt/openoffice.org3/program/soffice.bin
Il
se peut que cette ligne soit présente :
lrwxrwxrwx
1 root root 40 nov 27 13:04 /usr/bin/soffice ->
/opt/openoffice.or.........
Dans ce cas, supprimez cette ligne :
rm
/usr/bin/soffice
Et ajoutez la nouvelle :
ln
-s /opt/openoffice.org3/program/soffice.bin /usr/bin/soffice.bin
Tapez ces commandes pour le partage des PDF
cd
ThirdPartyPackages/
tar xvf swftools.tar.gz
cp
swftools/pdf2swf /usr/bin/
cp swftools/libs/* /usr/lib/
cp
swfdump /usr/bin/
cp swfextract /usr/bin/
cp -r
swffonts/fonts/ /usr/local/share/swftools/
Utilisez enfin le fichier Config-ipaddress.pl :
- En réseau local (sans firewall) : ./Config-ipaddress.pl 192.168.1.2 80 (ip privée, port)
- A travers un Firewall : ./Config-ipaddress.pl http://url 80 192.168.1.2 (url publique, port, ip privée)
Attention
à bien débloquer les ports 80 et 1935 sur votre
Firewall.
Conclusion
La configuration principale de Dimdim se fait ensuite dans le fichier suivant :
/usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/webapps/dimdim/WEB-INF/classes/resources/dimdim.properties
Merci à F Maussion pour son script concernant l'installation de la version 3.5 (je me suis permis de reprendre les lignes de chmod).