Acerca de este sitio Notas en el proceso de instalación y uso de Freeling en OS X Mountain Lion. Un recuento de las experiencias por versión de la librería y del sistema operativo.

Índice

  1. Descripción.
  2. Instalación.
  3. Desinstalación.

Freeling

Descripción

Este es un recuento de la instalación de la librería Freeling v3.0 en OS X v10.8. Las intrucciones seguidas fueron como se indica en el post de Eduard Barbu en el sitio de Freeling y en el post de Pablo Casado en el sitio hardlifeofapo.com. Al seguir la información presentada Ud. acepta las clausulas de responsabilidad del sitio.

Como se indica en los posts citados, se requiere contar con XCode (disponible en el sitio de Apple para desarrolladores y en el App Store de Apple) y MacPorts (en este sitio también hay una descripción de como ha sido el proceso de instalación de MacPorts, como una referencia adicional). Una vez instalados, puestos a punto y validados puede iniciarse el proceso de instalación de Freeling.

Freeling

Instalación

Lo que aquí se presenta parte de las instrucciones del post de Eduard Barbu en el sitio de Freeling. Así, se ha se procedido de la siguiente manera:

  1.  Ya con MacPorts instalado, se deben agregar las siguientes herramientas: automake, libtool, boost, subversion, que se consigue desde una sesión en un shell en la aplicación  Terminal con los comandos que indica la página (en este caso se usó el shell Korn). Cabe mencionar que para este paso se empleó una cuenta con capacidad de administración, esto es, una cuenta con privilegios para hacer sudo.

    $ sudo port install automake
    $ sudo port install libtool
    $ sudo port install boost
    $ sudo port install subversion

    cada instalación debe terminar con

    ---> Updating database of binaries: 100.0%
    ---> Scanning binaries for linking errors: 100.0%
    ---> No broken files found.

  2. El siguiente paso consiste en descargar los fuentes de Freeling en un directorio creado ex profeso para el proceso de compilación. Para este paso se optó por hacerlo desde una cuenta sin privilegios de administración, para validar si habría alguna dependencia de privilegios del sistema operativo. Los comandos introducidos se muestran en negritas:

    $ mkdir Freeling
    $ cd F*
    $ mkdir source
    $ cd source
    $ svn checkout http://devel.cpl.upc.edu/freeling/svn/trunk myfreeling
    A myfreeling/APIs/java
    ...
    A myfreeling/src/main/Makefile.am
    A myfreeling/src/main/README
    A myfreeling/THANKS
    Checked out revision 2353.
    $ cd my*
    $ ls

    AUTHORS LICENSES THANKS data msvc
    APIs INSTALL README configure.ac m4
    COPYING Makefile.am TODO doc src
    ChangeLog NEWS autogen.sh freeling.pc.in
    $spacer
  3. Lo siguiente fueron los preparativos de compilación (paso 5 de la página que se indicó al inicio nos estamos basando) pero la ejecución de aclocal presenta problemas:
    spacer
    $ aclocal
    -ksh: aclocal: not found
    $ PATH=$PATH:/opt/local/bin
    $ aclocal
    sh: autom4te: command not found
    aclocal: error: echo failed with exit status: 127

    spacer
    Muchas referencias sobre este problema mencionan que se corrige con elementos de configuración y el paquete autoconf y de aquí es que se llegó al post de Pablo Casado en el sitio hardlifeofapo.com, donde se menciona la instalación de este paquete como parte de los pasos iniciales de ambientación. Así entonces, desde la cuenta administradora:
    spacer
    $ sudo port install autoconf
    Password:
    ---> Computing dependencies for autoconf
    ---> Dependencies to be installed: m4
    —> Cleaning autoconf
    —> Updating database of binaries: 100.0%
    —> Scanning binaries for linking errors: 100.0%
    —> No broken files found.
    $
    spacer
    Y con el paquete instalado se regresa a la cuenta donde se está llevando el proceso de compilación
    spacer
    $ aclocal
    $ glibtoolize --force
    glibtoolize: putting auxiliary files in `.'.
    glibtoolize: linking file `./ltmain.sh'
    ...
    glibtoolize: linking file `m4/lt~obsolete.m4'
    $ autoconf
    $ automake -a

    spacer
  4. El paso para crear el enlace simbólico (symbolic link) que requiere boost se debe hacer en la cuenta administradora, por privilegios:

    $ cd /opt/local/include/boost
    $ sudo ln -s property_map/property_map.hpp


    spacer
  5. El último paso se llevó a cabo de la siguiente manera. En la cuenta no administradora, cuidando estar en el directorio myfreeling generado tras la descarga (en este caso dentro de Freeling/source), se ejecutaron los dos siguientes comandos, presentándose un problema con uno de ellos.
    spacer
    $ env LDFLAGS="-L/opt/local/lib -L/opt/local/lib/db46" CPPFLAGS="-I/opt/local/include -I/opt/local/include/boost -I/opt/local/include/db46" ./configure
    $ make

    ...
    checking whether ln -s works... yes
    checking whether make sets $(MAKE)... (cached) yes

    boost::locale (available in boost>=1.48) is required to run FreeLing
    on MacOSX. Please run configure with option --enable-boost-locale

    $
    spacer
    Como el mensaje señala, se ejecutó configure con la opción indicada sin presentarse problemas y así seguir con el make:
    spacer
    $ env LDFLAGS="-L/opt/local/lib -L/opt/local/lib/db46" CPPFLAGS="-I/opt/local/include -I/opt/local/include/boost -I/opt/local/include/db46"./configure --enable-boost-locale
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... ./install-sh -c -d
    ...
    checking for ANSI C header files... (cached) yes
    checking that generated files are newer than configure... done
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating data/Makefile
    config.status: creating src/Makefile
    config.status: creating src/include/Makefile
    config.status: creating src/libfreeling/Makefile
    config.status: creating src/main/Makefile
    config.status: creating src/utilities/Makefile
    config.status: creating src/tests/Makefile
    config.status: creating freeling.pc
    config.status: executing depfiles commands
    config.status: executing libtool commands
    $ make
    Making all in src
    Making all in include
    make[2]: Nothing to be done for `all'.
    Making all in libfreeling
    ...

    (después de un rato)
    ...
    libtool: link: g++ -O3 -Wall -o .libs/dicc2phon corrector/dicc2phon-dicc2phon.o -Wl,-bind_at_load -L/opt/local/lib -L/opt/local/lib/db46 -L../../src/libfreeling /Users/lalo/Documents/tmp/Freeling/source/myfreeling/src/libfreeling/.libs/libfreeling.dylib -lboost_regex-mt -lboost_locale-mt -lboost_thread-mt -lboost_system-mt -lz
    make[2]: Nothing to be done for `all-am'.
    Making all in data
    make[1]: Nothing to be done for `all'.
    make[1]: Nothing to be done for `all-am'.
    $

    spacer
    El último comando se llevó a cabo en la cuenta administradora, que por tratarse de la instalación de software, se optó hacerla con root:
    spacer
    $ sudo su
    Password:
    # make install
    Making install in src
    Making install in include
    make[3]: Nothing to be done for `install-exec-am'.
    ../.././install-sh -c -d '/usr/local/include'
    ...

    (después de varios minutos)
    ...
    - Creating ru dictionary...
    Installing files for language 'sl'. Please wait.
    make install-exec-hook
    chmod -x //usr/local/bin/fl_initialize
    ./install-sh -c -d '/usr/local/lib/pkgconfig'
    /usr/bin/install -c -m 644 freeling.pc '/usr/local/lib/pkgconfig'
    #

Freeling

Desinstalación

El manual de Freeling no indica el procedimiento a seguir en la desinstalación de la librería. Por lo que se alcanza a ver, para remover los componentes de software bastaría con ejecutar los comando abajo indicados; sin embargo una palabra de precaución: en el caso de los directorios lib e include conviene hacer una revisión previa en caso de que éstos contuvieran elementos de alguna otra instalación. Si el contenido de estos directorios muestra que sólo elementos de Freeling están instalados en éstos, se puede proceder con los comandos señalados para eliminar el directorio completo. En caso de detectar elementos ajenos a Freeling deberán modificarse dichos comandos para que se borren sólo aquellos elementos de este software.

$ sudo rm -R /usr/local/bin/analyze \
/usr/local/bin/analyzer \
/usr/local/bin/analyzer_client \
/usr/local/bin/dicc2phon \
/usr/local/bin/fl_initialize \
/usr/local/bin/threaded_analyzer \
/usr/local/include \
/usr/local/lib \
/usr/local/share/freeling

Así como también eliminar el directorio en donde se descargó el software inicialmente.