Installation sur Windows en utilisant cygwin

From Apertium
Revision as of 21:22, 4 July 2014 by Bech (talk | contribs) (Correction accès svn)
Jump to navigation Jump to search

Cette page est conservée pour des raisons historiques, si vous voulez installer Apertium sur Windows facilement, voyez : Guide Apertium pour les utilisateurs de Windows


Dragon.jpg

hic·sunt·dracones
Here be dragons! To make improvements, please dive right in. It is highly recommended that you hang out on the IRC channel (irc.oftc.net #apertium) and join the mailing list.


Notes introductives

Apertium est un logiciel Unix (ce qui inclut Mac OS/X). Il n'est pas formellement supporté par Windows - même si on aimerait tous qu'il tourne sous Windows, il n'est pas supporté. Il semble qu'Apertium soit une bête difficile à faire marcher, ce qui est étonnant pour nous, parce que dans un environnement Unix, il marche tout simplement.

Cygwin, en temps qu'environnement 'Unix-like' pour Windows, est une cible simple pour nous, parce qu'il supporte pleinement les wstring (chaine de caractères larges, très utilisées par Apertium) depuis la version 1.7.

Lttoolbox se construit avec Visual C++ sans modification additionnelles - pour peu que vous suiviez les instructions dans README.Win32.

Vous aurez aussi besoin d'un shell de type Unix, comme bash, pour l'exécuter. Les fichiers de commandes Windows ne fonctionnent pas, puisque Windows ne supporte pas sans tricher les tubes ('|') entre programmes.[1]. Une solution peut être d'utiliser bash depuis Cygwin.

Récupération du code

Les modifications de la lttoolbox sont dans la branche principale de SVN. Les changements actuels pour win32 pour apertium sont dans la branche apertium/win32

Voir les instructions pour Utiliser SVN, ou plus simplement :

Construction sous Cygwin

Cygwin est un environnement Unix-like et une interface en ligne de commandes pour Microsoft Windows, qui supporte l'intégration native des applications basées Windows, des données, et autres ressources système avec les applications, outils logiciels, et données de l'environnement Unix-like. Ainsi, il est possible de lancer des applications Windows depuis l'environnement Cygwin, aussi bien que d'utiliser les outils et applications Cygwin dans un contexte opératoire Windows.

LTToolbox et Apertium peuvent être facilement construits depuis Cygwin 1.7 : D'abord assurez-vous que vous avez toutes les dépendances nécessaires; vous pouvez récupérer LTToolbox' et les sources d'Apertium directement depuis le dépôt SVN d'Apertium en utilisant le shell de Cygwin avec les commandes suivantes :

svn co https://svn.code.sf.net/p/apertium/svn/trunk/lttoolbox lttoolbox
svn co https://svn.code.sf.net/p/apertium/svn/trunk/apertium apertium

Ensuite, en utilisant le shell bash de Cygwin, allez dans le répertoire des sources de LTToolbox' :

cd lttoolbox

et exécutez la séquence de commandes suivante :

./autogen.sh --prefix=/usr
make
make install

Ensuite allez dans le répertoire des sources d'Apertium et faites de même :

cd ../apertium
./autogen.sh --prefix=/usr
make
make install

Maintenant vous êtes prêt à télécharger et construire les paires de langues et à les utiliser depuis le shell de Cygwin.

Construction sous Visual C++

Dépendances

Vous aurez besoin de récupérer des versions Windows des outils et bibliothèques qui suivent pour compiler le code sous Windows :

  • compilateur C++ Microsoft - le compilateur de Visual Studio 2008 Express, qui est disponible gratuitement.
  • CMake - un outil de construction pour plateforme croisée, téléchargez cmake-2.6.4-win32-x86.exe , à l'installation assurez-vous que vous avez CMakeSetup.exe dans le répertoire bin .
  • libxml - les binaires Windows sont dans [1]; et vous aurez besoin de :
    • libxml2 (installez le dans C:\Program Files\LibXML) depuis libxml2-2.7.6.win32.zip
    • zlib (installez le dans C:\Program Files\zlib) depuis zlib-1.2.3.win32.zip
    • iconv (installez le dans C:\Program Files\iconv) depuis iconv-1.9.2.win32.zip
    • libxslt (installez le dans C:\Program Files\libxslt) depuis libxslt-1.1.26.win32.zip
  • pcre - Téléchargez pcre-7.9.zip et décompressez-le (dans C:\pcre par exemple), voir aussi Construction et installation de pcre plus loin.
    • KDE/Win32 possède des paquets pour MinGW/MSVC ici -- Je ne les ai pas encore testés.
  • flex pour Windows - téléchargez et utilisez la version Windows de l'installateur (http://sourceforge.net/projects/gnuwin32/files/flex/).

Rajouter les répertoires des binaires de libxml2, zlib et iconv dans la variable PATH, pour information elles sont utilisées par xsltproc.exe.

Mise en place des outils et des bibliothèques nécessaires

Installation de Visual Studio

Soyez certain de télécharger Visual Studio 2008 en premier, vu que c'est un téléchargement assez long.

Installation de CMake

Ensuite, installez la version Windows de CMake. Laissez l'installateur placer CMake dans votre chemin, ainsi il sera plus facile de démarrer CMake depuis la ligne de commandes si vous faites cela.

Installation des bibliothèques libxml

Les fichiers zip de libxml2, zlib, iconv et libxslt ont tous la structure familière sous UNIX :

|- bin
|- include
|- lib
|- share

Décompressez chacune de ces archives et copiez les répertoires bin, include, lib et share de chaque paquet dans un répertoire commun (C:\Program Files\LibXML par défaut).

Construction et installation de pcre

Vous avez décompressé l'archive pcre dans un répertoire C:\pcre-7.9 (probablement), créez un répertoire C:\pcre\build (par exemple).

Éditez le fichier CMakeLists.txt et mettez-le à jour en remplaçant OFF par ON :

SET(PCRE_SUPPORT_UTF8 OFF CACHE BOOL
    "Enable support for the Unicode UTF-8 encoding.")

Pour le compiler, vous aurez besoin d'avoir Visual Studio ET CMake déjà installés sur votre système. Ouvrez le Command Prompt de Visual Studio 8.0 (Start -> Microsoft Visual C++ 2008 Express Edition -> Visual Studio Tools -> Visual Studio 2008 Command Prompt). Depuis ce command prompt, allez au répertoire des sources pcre et lancez :

cmakesetup .

Définissez l'emplacement du code source (C:\pcre-7.9) sur répertoire de construction (C:\pcre-7.9\build). Cliquez sur "Configure" er sélectionnez "NMake Makefiles", CMake vous montrera un certain nombre de variables pour la construction, toutes mises en évidence en rouge, cliquez sur "Configure" une autre fois, si tout se passe bien le bouton "OK" va devenir actif, cliquez dessus : en résultat votre répertoire "build" sera rempli avec un certain nombre de fichiers pour compiler le logiciel.

Pour compiler pcre, allez dans le répertoire build (C:\pcre-7.9\build) et lancez :

nmake

Quand c'est fait, copiez le fichier pcred.lib dans votre répertoire pcre final (C:\Program Files\pcre\lib pas exemple).

Installation de flex

Si vous avez téléchargé l'archive binaire, décompressez-la pour obtenir quelque-chose comme C:\Program Files\Flex. Si vous avez téléchargé l'installateur Windows, alors veuillez juste suivre l'assistant d'installation.

Construction de lttoolbox

Avant de pouvoir construire lttoolbox, vous devez faire savoir à CMake où trouver les fichiers libxml (sous Linux, CMake utilisera pkg-config pour trouver où les paquets sont installés). Ouvrez lttoolbox\CMakeLists.txt et modifiez les lignes

SET (LIBXML2_BASE        "C:/Program\ Files/LibXML")
SET (LIBXML2_INCLUDE_DIR "${LIBXML2_BASE}/include")
SET (LIBXML2_LIBRARIES   "${LIBXML2_BASE}/lib/libxml2.lib")

pour trouver votre installation.

Maintenant, dans le command prompt de Visual Studio (de nouveau, Start -> Microsoft Visual C++ 2008 Express Edition -> Visual Studio Tools -> Visual Studio 2008 Command Prompt) changez le répertoire en lttoolbox et exécutez

cmakesetup .

Cliquez sur le button configure. Comme pour libpcre, CMake vous demandera de choisir le type de fichier de construction à génerer. De nouveau, choisissez "Nmake". Si vous obtenez un message d'erreur au sujet de LIBXML, ça signifie que LIBXML2_INCLUDE_DIR ou LIBXML2_LIBRARIES dans lttoolbox\CMakeLists.txt possède une valeur incorrecte.

Si tout se termine sans erreur après le premier clic sur le bouton "Configure", vous aurez de nouveau quelques lignes qui apparaîtront dans la fenêtre cmakesetup. Elles devraient être mises en évidence en rouge. Vous avez la possibilité de changer le répertoire d'installation de lttoolbox en modifiant la variable de construction CMAKE_INSTALL_PREFIX. Pour continuer, cliquez une deuxième fois sur "Configure"; si tout se passe bien, tout ce qui était mis en évidence en rouge devrait maintenant être en gris et le button OK devenu actif.

Ensuite cliquez sur OK; CMake devrait générer les fichiers NMake. Pour compiler, exécutez simplement :

nmake

Pour installer lttoolbox, lancez :

nmake install

Construction d'apertium

Pour construire apertium, CMake a besoin d'utiliser les outils et bibliothèques qui suivent :

  • libxml
  • libpcre
  • lttoolbox
  • xsltproc (vous devriez l'avoir depuis qu'elle est distribuée avec libxslt)
  • flex

À ce stade vous devriez avoir tout ce qui suit et vous avez seulement besoin d'indiquer les bonnes variables CMake pour construire apertium. Ouvrez apertium/CMakeLists.txt (depuis le répertoire trunk) et trouvez la section qui devrait ressembler à ceci :

IF (WIN32)
        SET (WIN32_DIR ${PROJECT_SOURCE_DIR}/apertium/win32)
        INCLUDE_DIRECTORIES (${WIN32_DIR}; C:/apertium/trunk/lttoolbox; C:/pcre)
        LIST (APPEND EXTRA_SOURCES ${WIN32_DIR}/getopt.c ${WIN32_DIR}/libgen.c)

        SET(FLEX_EXECUTABLE        "${PROGRAM_FILES_PATH}/GnuWin32/bin/flex.exe")

        SET(LIBXML2_BASE_DIR       "${LIBXML2_BASE_DIR}/LibXML")
        SET(LIBXML2_INCLUDE_DIR    "${LIBXML2_BASE_DIR}/include")
        SET(LIBXML2_LIBRARIES      "${LIBXML2_BASE_DIR}/lib/libxml2.lib")
        
        SET(LIBXSLT_BASE_DIR       "${PROGRAM_FILES_PATH}/libxslt")
        SET(LIBXSLT_INCLUDE_DIR    "${LIBXSLT_BASE_DIR}/include")
        SET(LIBXSLT_LIBRARIES      "${LIBXSLT_BASE_DIR}/lib/libxslt.lib")
        SET(XSLTPROC_EXECUTABLE    "${LIBXSLT_BASE_DIR}/bin/xsltproc.exe")

        SET(LTTOOLBOX3_BASE_DIR    "${PROGRAM_FILES_PATH}/apertium-3.1")
        SET(LTTOOLBOX3_INCLUDE_DIR "${LTTOOLBOX3_BASE_DIR}/include/lttoolbox-3.1")
        SET(LTTOOLBOX3_LIBRARIES   "${LTTOOLBOX3_BASE_DIR}/lib/lttoolbox3.lib")

        SET(LIBPCRE_BASE_DIR       "${PROGRAM_FILES_PATH}/pcre")
        SET(LIBPCRE_INCLUDE_DIR    "${LIBPCRE_BASE_DIR}/include")
        SET(LIBPCRE_LIBRARIES      "${LIBPCRE_BASE_DIR}/lib/pcred.lib")

        ADD_DEFINITIONS (/D _CRT_SECURE_NO_WARNINGS /D STDC_HEADERS /D PCRE_STATIC)
ENDIF (WIN32)

Les seules variables que vous pouvez avoir besoin d'adapter sont :

  • INCLUDE_DIRECTORIES
  • FLEX_EXECUTABLE
  • LIBXML2_BASE_DIR
  • LIBXSLT_BASE_DIR
  • LTTOOLBOX3_BASE_DIR
  • LIBPCRE_BASE_DIR

Ces variables pointent vers les répertoires de base où sont installés les outils et bibliothèques respectifs.

Pour construire apertium, ouvrez le command prompt de Visual Studio (comme décrit précédemment dans ce document) and changez le répertoire en apertium. Maintenant, lancez comme avant :

cmakesetup .

Suivez toutes les étapes de construction comme décrites dans la section précédente qui détaille comment lttoolbox est construit.

Une fois la construction terminée, vous devriez pouvoir installer apertium en tapant :

nmake install

Test d'apertium

Allez dans le répertoire occitan-catalan (du genre C:\Apertium\trunk\apertium-oc-ca) et faites les tests suivants :

lt-comp lr apertium-oc-ca.ca.dix ca-oc.automorf.bin

résultats attendus :

apostrophes@postblank 1001 1543
final@inconditional 28 537
main@standard 36360 66910

Essayez maintenant :

echo "Això és una prova" | lt-proc ca-oc.automorf.bin 

résultats attendus :

^Això/Això<prn><tn><p3><nt>$ ^és/ser<vbser><pri><p3><sg>$ ^una/un<num><f><sp>/un<det><ind><f><sg>$ ^prova/prova<n><f><sg>/provar<vblex><imp><p2><sg>/provar<vblex><pri><p3><sg>$

ensuite faites :

echo "Això és una prova" | lt-proc ca-oc.automorf.bin  | apertium-tagger -g ca-oc.prob 

résultats attendus :

^Això<prn><tn><p3><nt>$ ^ser<vbser><pri><p3><sg>$ ^un<det><ind><f><sg>$ ^prova<n><f><sg>$

Notes

  1. Plutôt que de faire un tube (en utilisant une zone de mémoire partagée) directement entre processus, la 'boite DOS' utilise des fichiers temporaires pour émuler cela : ls | more devient l'équivalent de ls > tmp; more < tmp; rm tmp