Installation sur Windows en utilisant cygwin
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
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.
Contents
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 :
- Téléchargez et installez TortoiseSVN
- Récupérez un ensemble login/password chez SourceForge à http://sourceforge.net/
- Créez un répertoire C:\Apertium, et cliquez droit sur /TortoiseSVN/Import... à l'intérieur
- Spécifiez l'URL du dépôt : http://apertium.svn.sourceforge.net/svnroot/apertium et cliquez OK
- Utilisez le code source du répertoire "trunk" (pas "branches").
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 http://apertium.svn.sourceforge.net/svnroot/apertium/trunk/lttoolbox lttoolbox svn co http://apertium.svn.sourceforge.net/svnroot/apertium/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
- ↑ 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 dels > tmp; more < tmp; rm tmp