Installation de TE

1. Pré-requis

  • PHP 5.x

`freedom-te' est écrit en PHP et nécessite donc l'interpréteur PHP (php-cli).

  • SimpleXML

`freedom-te' nécessite SimpleXML.

  • Xvfb

`freedom-te' nécessite le serveur X virtual-frame-buffer (Xvfb) pour exécuter OpenOffice.org.

  • OpenOffice.org 3.1

`freedom-te' est préconfiguré pour fonctionner avec OpenOffice.org 3.1 tels que livré par les paquets du site officiel OpenOffice.org (installé par défaut dans `/opt/openoffice.org3').

  • beagle-extract-content et beagle-doc-extractor

`freedom-te' utilise l'outils `beagle-extract-content' et `beagle-doc-extractor' (fournit avec Beagle), pour l'extraction de texte.

  • a2ps et ps2pdf14

`freedom-te' utilise l'outils `a2ps' (fournit par a2ps) et `ps2pdf14' (fournit avec Ghostscript), pour les conversions texte → PDF.

  • ssindex

Beagle utilise l'outils `ssindex (fournit par Gnumeric) pour l'extraction de texte des documents de tableur.

  • recode

`freedom-te utilise recode (fournit par GNU recode).

  • perl

`freedom-te utilise perl (fournit par Perl).

  • convert

`freedom-te utilise l'outils de conversion d'image convert (fournit par ImageMagick).

2. Installation

`freedom-te' est disponible sous forme d'archive à installer sur un serveur dédié (ou non) qui assurera la fonction de serveur de transformation pour un serveur Freedom.

2.1. Télécharger et décompresser l'archive `''freedom-te-current.tar.gz'''

# wget http://ftp.freedom-ecm.org/3.0/tarball/freedom-te-current.tar.gz
# tar zxvf freedom-te-current.tar.gz

L'archive se décompresse et crée un sous-répertoire `freedom-te-{VERSION}-{RELEASE}' avec le numéro de {VERSION} et de {RELEASE} de freedom-te.

2.2. Installer le répertoire de `''freedom-te''' sur votre système

Exemple d'install dans `/opt/freedom-te' :

# TE_HOME=/opt/freedom-te
# mv freedom-te-0.8.0-1 $TE_HOME

Le répertoire `/opt/freedom-te' sera par la suite référencé dans la documentation par `$TE_HOME'.

2.3. Création de la base de donnée TE

2.3.1. Créer une base `''te''' sur votre serveur de base de données

# su postgres -c psql
postgres=# CREATE DATABASE "te" WITH OWNER "freedom";

2.3.2. Créer/ajouter le service postgresql pour l'accès à cette base `''te'''

# vi $PGSYSCONFDIR/pg_service.conf

   ...

[te]
host=127.0.0.1
port=5432
user=freedom
password=secret
dbname=te

Note: La valeur de `$PGSYSCONFDIR est dépendante de votre distribution, et peut être trouvée avec la commande : `pg_config –sysconfdir'.

2.3.3. Valider l'accès à la base de donnée `''te'''

# PGSERVICE=te psql
te=# \q

3. Configuration du serveur TE

Les paramètres du serveur TE sont définis dans le fichier `$TE_HOME/etc/te.conf'.

Lors de la première utilisation il vous faudra copier le fichier d'exemple `te.conf.sample' dans `te.conf :

# cp $TE_HOME/etc/te.conf.sample $TE_HOME/etc/te.conf

Les paramètres à ajuster en fonction de votre environnement sont :

  • Accès base de donnée
TE_PG_SERVICE=te Contient le le nom du service pour l'accès à la base `te'.


  • Interaction avec Freedom

A partir de la version 0.8.2 la définition du login et du mot de passe ne sont plus obligatoires.

URL_CALLBACL_LOGIN=te Le login d'un compte Freedom ayant les droits EDIT pour l'application FDL.
URL_CALLBACK_PASSWORD=secret Le mot de passe associé au compte Freedom déclaré dans `URL_CALLBACK_LOGIN.


  • Lancer les serveurs sous une autre identité que root
TE_SERVER_USER=root L'utilisateur sous lequel lancer les serveurs de TE (root par défaut).


  • Paramétrage serveur OpenOffice.org
TE_OOO_SERVER_PYTHON=/opt/openoffice.org3/program/python Le chemin d'accès à l'interpréteur Python de OpenOffice.org.
TE_OOO_SERVER_SOFFICE=/opt/openoffice.org3/program/soffice Le chemin d'accès au programme `soffice' de OpenOffice.org.
TE_OOO_SERVER_UNOPKG=/opt/openoffice.org3/program/unopkg Le chemin d'accès au programme `unopkg' de OpenOffice.org.
TE_OOO_SERVER_HOST=127.0.0.1 L'adresse IP d'écoute du serveur TE.
TE_OOO_SERVER_PORT=8123 Le port d'écoute du serveur TE.


  • Paramétrage de l'extracteur de texte Beagle
BEAGLE_EXTRACT_CONTENT Le nom, ou chemin d'accès, de l'outils `beagle-extract-content'.
BEAGLE_LC_ALL Locale pour l'execution de BEAGLE_EXTRACT_CONTENT (par défaut la valeur est celle de la variable d'enrivonnement `$LANG').


4. Initialisation

Une fois les éléments installés, il vous faut initialiser la base de données TE.

# $TE_HOME/bin/ted init
 * Initializing ted service: OK

L'initialisation crée les tables `engine' et `task' dans la base TE.

5. Démarrage/arrêt/status de TE

5.1. Démarrage des éléments de TE (''ted start'')

TE démarre trois services qui sont :

  • Le serveur OpenOffice.org
  • Le serveur te_request_server
  • Le serveur te_rendering_server
# $TE_HOME/bin/ted start
Starting OOO server... 27023
Starting te_request_server... 27041
Starting te_rendering_server... 27043
 * Starting ted service:  OK

Le script `ted s'occupe de lancer les trois composants, et affiche leur PID.

5.2. Status des éléments de TE (''ted status'')

# $TE_HOME/bin/ted status
Request server running (27041)
Rendering server running (27043)
OOO server running (27023)

Le script `ted' affiche pour chacun des trois composants s'ils tournent ou non, et leur PID.

5.3. Vérification des moteurs de transformation (''ted check'')

Le script `ted' permet de lancer une vérification des moteurs de transformations. Pour cela, il faut démarrer les composants (voir `ted start' ci-dessus), et ensuite exécuter la commande suivante :

# $TE_HOME/bin/ted check

* Checking conversion from ODT to PDF...
  Ok: '/tmp/test.odtn27155.pdf' (7957 bytes)

* Checking conversion from ODT to PDF/A-1...
  Ok: '/tmp/test.odtQ27176.pdfa' (14430 bytes)

* Checking conversion from ODT to TXT...
  Ok: '/tmp/test.odtu27199.txt' (22 bytes)

* Checking conversion from HTML to ODT...
  Ok: '/tmp/test.htmlF27220.odt' (9067 bytes)

* Checking conversion from HTML to PDF...
  Ok: '/tmp/test.htmlj27253.pdf' (8066 bytes)

* Checking conversion from HTML to PDF/A-1...
  Ok: '/tmp/test.htmlW27300.pdfa' (14764 bytes)

* Checking conversion from HTML to TXT...
  Ok: '/tmp/test.htmll27348.txt' (39 bytes)

* Checking conversion from PDF to TXT...
  Ok: '/tmp/test.pdfq27356.txt' (22 bytes)

* Checking conversion from TXT to PDF...
  Ok: '/tmp/test.txtK27363.pdf' (2559 bytes)

Si le nom d'hôte/nom de domaine du système est mal configuré, les temps de conversion peuvent être long du fait de timeouts de résolution de noms lors de la connexion au serveur OOo. Pour corriger cela, assurez vous que le nom d'hôte (tel que retourné par la commande `hostname') et le nom de domaine (tel que retourné par la commande `dnsdomainname') sont corrects, et que le fichier `/etc/hosts' est correctement renseigné.

5.4. Arrêts des éléments de TE (''ted stop'')

# $TE_HOME/bin/ted stop
Stopping te_request_server... 27041
Stopping te_rendrering_server... 27043
Stopping OOO server... 27023
 * Stopping ted service:  OK

6. Démarrage/arrêt automatique de TE avec le système

Pour que TE démarre, et s'arrête, lors du démarrage, et l'arrêt, du système, il faut enregistrer le script `ted' dans le système rc/init de votre système.

6.1. Enregistrement de ted sur distribution de type RedHat

Les distribution de type RedHat utilisent la commande `chkconfig' pour administrer les scripts rc/init.

Faire un lien symbolique de `$TE_HOME/bin/ted' dans le répertoire `/etc/rc.d/init.d/' :

# ln -sf $TE_HOME/bin/ted /etc/rc.d/init.d/ted

Enregistrer `ted' :

# chkconfig --add ted
# chkconfig ted on
# chkconfig --list ted
ted             0:arrêt 1:arrêt 2:marche        3:marche        4:marche        5:marche        6:arrêt

6.2. Enregistrement de ted sur distribution de type Debian

Les distributions de type Debian utilisent la commande `update-rc.d' pour administrer les scripts rc/init.

Faire un lien symbolique de `$TE_HOME/bin/ted' dans le répertoire `/etc/init.d/' :

# ln -sf $TE_HOME/bin/ted /etc/init.d/ted

Enregistrer `ted' :

# # update-rc.d ted defaults
 Adding system startup for /etc/init.d/ted ...
   /etc/rc0.d/K20ted -> ../init.d/ted
   /etc/rc1.d/K20ted -> ../init.d/ted
   /etc/rc6.d/K20ted -> ../init.d/ted
   /etc/rc2.d/S20ted -> ../init.d/ted
   /etc/rc3.d/S20ted -> ../init.d/ted
   /etc/rc4.d/S20ted -> ../init.d/ted
   /etc/rc5.d/S20ted -> ../init.d/ted

7. Migration/Changelog

7.1. Migration d'un TE 0.7.0

La partie cliente de freedom-te est à présent intégré dans freedom-2.13.

  • Arrêter le service TE.
  • Désinstaller le paquet `freedom-te' et `freedom-te-client' à l'aide du gestionnaire de paquet.
  • Installer `freedom-te-current.tar.gz' comme indiqué ci-dessus.
  • Instancier un fichier de configuration `$TE_HOME/etc/te.conf à partir du fichier `$TE_HOME/etc/te.conf.sample', et ajuster les paramètres en fonction de votre installation précédente.
  • Modifier les chemins des scripts de conversion de la table `engine' :
# PGSERVICE=te psql
te=# UPDATE engine SET command = regexp_replace(command, '^/usr/share/(php|pear)/TE/engines/', '@TE_HOME@/lib/engines/');
  • Démarrer le service TE.
  • Lancer un `ted check'.

7.1. freedom-te-0.8.0-2

Le paramètre `TE_OOO_SERVER_USER' est renommé en `TE_SERVER_USER' et sert à lancer tous les serveurs de TE sous cette identité.

Vérifier votre configuration `te.conf' pour rétablir ce paramètre si vous utilisiez `TE_OOO_SERVER_SERVER'.

7.2. freedom-te-0.8.0-3

Cette version introduit l'utilisation par défaut de Beagle pour l'extraction du texte des documents.

Vérifier votre configuration `te.conf' avec les paramètres `BEAGLE_*', et ré-initialiser la table `engine' pour incorporer `beagle2txt' comme moteur de transformation pour l'extraction de texte :

  • Sauvegarder la définition de vos propres moteurs.
  • Supprimer le contenu de la table `engine' :
# PGSERVICE=te psql
te=# DELETE FROM engine;
  • Re-charger la nouvelle liste de moteurs :
# PGSERVICE=te psql
te=# \i $TE_HOME/lib/engines/engine_init.sql
  • Re-importer la définition de vos propres moteurs.

7.3. freedom-te-0.8.1-1

Correction bug #254 : la librairie `Lib.TEUtil.php' a été renommée en `Lib.TE.php' pour éviter les conflits avec la librairie `Lib.TEUtil.php' livrée par l'ancien paquet `freedom-te-client'.

7.4. freedom-te-0.8.2-0

Cette version introduit trois nouveaux moteurs de transformation qui sont :

  • mergeodt
  • mergepdf
  • mergepdfa

Leur rôle est de prendre en entrée une archive ZIP contenant des fichiers texte compréhensibles par OpenOffice.org (.odt, .doc, etc. ; sont donc exclus les .xls, .ods, .ppt, etc.), et de produire en sortie un fichier au format ODT, PFD ou PDF/A résultat de la concaténation (merge) des fichiers contenus dans l'archive.

Pour la mise à jour de la liste des moteurs :

  • Sauvegarder la définition de vos propres moteurs.
  • Supprimer le contenu de la table `engine' :
# PGSERVICE=te psql
te=# DELETE FROM engine;
  • Re-charger la nouvelle liste de moteurs :
# PGSERVICE=te psql
te=# \i $TE_HOME/lib/engines/engine_init.sql
  • Re-importer la définition de vos propres moteurs.

7.5. freedom-te-0.8.3-1

Une petit mise-à-jour de TE afin de contourner le dysfonctionnement de `beagle2txt' pour l'extraction de texte depuis les fichiers MS/Word sur les systèmes x86-64.

La commande `beagle-extract-content' ne fonctionnant pas correctement sur ces systèmes x86-64, nous avons donc ajouté un moteur `beagledoc2txt' dédié pour l'extraction texte des .doc (en utilisant `beagle-doc-extractor').

Si vous faites une mise-à-jour de TE, il faudra mettre à jour manuellement la base TE pour utiliser ce nouveau moteur :

# PGSERVICE=te psql
te=# UPDATE engine SET command = '@TE_HOME@/lib/engines/beagledoc2txt' WHERE name = 'utf8' AND mime = 'application/msword';

Vérifiez ensuite le fonctionnement de la conversion en lançant un `ted check' et en vérifiant le statut de la conversion “from MS-Word to TXT” :

# /etc/init.d/ted check
[...]
* Checking conversion from MS-Word to TXT...
  Ok: '/tmp/test.docgFZZHm.txt' (28 bytes)

[...]

7.6. freedom-te-0.8.4-1

Cette version introduit un mécanisme pour définir le type MIME d'un fichier à partir de son extension, en définissant des règles d'associations dans un fichier XML.

Les règles personnelle, qui ne seront pas écrasés lors de la mise-à-jour de TE, sont a définir dans le fichier `$TE_HOME/etc/mime-user.conf' :

<?xml version="1.0" encoding="utf8"?>
<mimes>
  <mime ext="eml" sys="text/x-mail" text="Mail text file" />
  <mime ext="foo" sys="application/foo" text="Foo file" />
</mimes>

Cela vous permet, par la suite, de pouvoir déclarer un moteur de transformation/indexation personnel pour traiter les `application/x-mail'.

modules/freedom-te/installation.txt · Dernière modification: 09/07/2010 08:03 par marc