Compilación de GRASS en Ubuntu 9.10

índice
Esta guía es una versión adaptada para la versión 9.10 (Karmic Koala) del sistema operativo GNU/Linux Ubuntu, basada en una guía anterior para la versión 8.04 (Hardy Heron): Instalar Grass e Qgis em Ubuntu 8.04 (com ECW e MrSID). Se han actualizado algunos comandos y corregidos algunos pequeños pormenores.


 * Para el procedimiento de instalación de GRASS a través de los repositorios, puede consultarse la guía existente para la versión 8.04 de Ubuntu: Instalar_Grass_e_Qgis_em_Ubuntu_8.04_através_repositorios.

Una de las características de GRASS GIS (cuando se encuentran en repositorios de terceros) es que no tiene soporte (a través de las librerías GDAL, Geospatial Data Abstraction Library) para algunos formatos de uso común, como por ejemplo, el formato ECW (Enhanced Compression Wavelet) e MrSID (MultiResolution Seamless Image Database). Esta situación se debe a las licencias poco claras bajo las cuales se distribuyen las librerías ECW y MrSID, que convierte en muy complicada, la posibilidad de incluirlas libremente en paquetes presentes en los repositorios de muchas de las distribuciones GNU/Linux.

En cualquier caso, las librerías ECW y MrSID pueden ser descargadas libremente de los sitios web de ER Mapper y LizardTech (responsables de las respectivas patentes y licencias de uso) y en el caso que comprendamos y aceptemos sus respectivas licencias, será posible utilizarlas con el fin de conseguir unas instalaciones de QGIS y GRASS con soporte para estos formatos. Este proceso implica la compilación e instalación manual de varios componentes: librerías ECW, MrSID, GDAL y obviamente, de GRASS.

Preparación
La instalación de GDAL y GRASS se realizará utilizando una interfaz de línea de comandos (generalmente llamada Terminal). En Ubuntu, el terminal puede ser llamado desde el menú Aplicaciones -> Accesorios -> Terminal.

Esta guía asume que todos los ficheros de instalación serán colocados en un directorio temporal (temp) en la carpeta raíz de vuestro usuario (/home/usuario). En el caso de que este directorio no exista, puede generarse de la siguiente manera:

mkdir ~/temp

Para empezar, accederemos al directorio que acabamos de generar (p.e /home/usuario/temp)

cd ~/temp

Instalación de las herramientas necesarias y compilación del programa
Para empezar será necesario instalar algunos paquetes que nos vana a permitir obtener y compilar el código fuente de las aplicaciones que pretendemos instalar:

build-essential, g++ y también el software subversion.

En el terminal el comando a utilizar será:

sudo apt-get install build-essential g++ subversion

Instalación de las librerías ECW
Encontraremos el código fuente en el sitio web de ER Mapper, en la sección Downloads (para poder obtenerlo deberemos registrarnos en el mismo sitio web). Seguimos los enlaces "Products & Downloads -> Image Compression SDK" y a continuación descargaremos el archivo "Image Compression SDK Source Code 3.3". De forma alternativas, caso que no fuera posible la descarga o el acceso al sitio web de Er Mapper, podemos descargar el ECW SDK desde el siguiente enlace.

Descomprimimos el archivo dentro del directorio ~/temp y accedemos a la carpeta que acabamos de crear mediante el comando:

cd libecwj2-3.3

Configuramos los archivos para la compilación:

./configure

Compilamos el código fuente:

make

Y como superusuario o administrador, instalamos las librerías:

sudo make install

Salimos de la carpeta hasta el nivel superior:

cd ..

Preparación de las librerías MrSID
Encontraremos el código fuente en el sitio web de Lizardtech, en la sección Download (para poder obtener el código fuente es necesario registrarse en el sitio web). Seguimos los enlaces "Download --> Developer SDKs" y a continuación aceptamos los términos de licencia presentes en el "LizardTech Software License Agreement" seleccionando el botón "I agree", y finalmente, descargamos el fichero "GeoExpress SDK for Linux (x86) - gcc 4.1 32-bit"

Descomprimimos el archivo dentro del directorio ~/temp. Las librerías MrSID no precisan de una instalación directa, aunque los archivos contenidos en esta carpeta serán necesarios en siguientes fases.

Instalación de las librerías de GDAL
Descargamos el código fuente con el programa subversion:

svn checkout https://svn.osgeo.org/gdal/trunk/gdal gdal

A continuación copiamos algunos ficheros que se encuentran en la carpeta del SDK de MrSID a la carpeta que contiene el código fuente de las librerías de GDAL:

cp ~/temp/Geo_DSDK-7.0.0.2167/include/*.* ~/temp/gdal/frmts/mrsid/

Accedemos a la carpeta que contiene el código fuente:

cd gdal

Configuramos los archivos para la compilación, en esta primera fase *sin* soporte para GRASS, *con* soporte para MrSID y *sin* soporte de lectura para el formato JP2MrSID (en caso contrario obtendremos un error durante la fase de compilación) a través del MrSID SDK. Recodemos a especificar la posición de las librearías MrSID de forma *relativa* en lugar de absoluta:

./configure --without-grass --with-mrsid=../Geo_DSDK-7.0.0.2167 --without-jp2mrsid

Al termino de la configuración, deberemos obtener, entre otras, las siguientes informaciones:

... GRASS support:            no ... ... ... ECW support:              yes MrSID support             yes ...

Compilamos el código fuente:

make

Y como superusuario o administrador, instalamos las librerías:

sudo make install

Sin salir de la carpeta donde acabamos de compilar GDAL, ejecutamos el comando:

sudo ldconfig

A continuación, podemos verificar que la instalación de GDAL ha sido correcta, con soporte para ECW y MrSID con los siguientes comandos:

gdalinfo --formats | grep 'ECW'

o bien,

gdalinfo --formats | grep 'SID'

Salimos de la carpeta hasta el nivel superior:

cd ..

Instalación de GRASS
Preparamos la instalación de GRASS (y posteriormente de QGis) con la instalación de un número considerable de librerías y programas necesarios para la compilación e instalación de las dos aplicaciones SIG de escritorio.

la forma más simple de instalar estos programas es ejecutar un único comando a través del terminal del siguiente modo:

sudo apt-get install flex bison libreadline5-dev libncurses5-dev lesstif2-dev debhelper dpatch libtiff4-dev tcl8.4-dev tk8.4-dev fftw-dev xlibmesa-gl-dev libfreetype6-dev autoconf2.13 autotools-dev libgdal1-dev proj libjpeg62-dev libpng12-dev libpq-dev unixodbc-dev doxygen fakeroot cmake python-dev python-qt4-dev python-sip4 python2.6-dev sip4 libglew1.5-dev libxmu6 libqt4-dev libgsl0-dev swig pyqt4-dev-tools cmake-curses-gui

Una vez finalizado el proceso, podemos descargar el código fuente desde el sitio web de GRASS. En el momento de crear este tutorial el paquete más nuevo era grass-6.4.0RC5.tar.gz. Es por ello que a lo largo de las siguientes líneas se va a utilizar este nombre. En el caso de que el código fuente sea más nuevo que el aquí mencionado (p.e grass-6.4.0RC7.tar.gz), deberá tenerse en cuenta sustituir el nombre aquí utilizado por el que se haya descargado desde el sitio web de GRASS.

Descomprimimos el archivo y accedemos a la carpeta que acabamos de crear mediante el comando:

cd grass-6.4.0RC5

Configuramos los archivos para la compilación con el comando:

./configure --with-tcltk-includes=/usr/include/tcl8.4 --with-proj-share=/usr/share/proj --with-gdal=/usr/local/bin/gdal-config --with-python=/usr/bin/python2.5-config

Compilamos el código fuente:

make

Y como superusuario o administrador, instalamos las librerías:

sudo make install

Salimos de la carpeta hasta el nivel superior:

cd ..

Instalación de las librerías GDAL-GRASS
Como primer paso, es necesario crear un fichero que podemos llamar "grass.conf" dentro de la carpeta /etc/ld.so.conf.d. Para realizar este paso podemos llamar un editor de texto como gedit o nano en modo administrador o superusuario:

sudo gedit /etc/ld.so.conf.d/grass.conf

El fichero en cuestión deberá contener una referencia al recurso en el cual se encuentran las librearías de GRASS, y en nuestro caso, debe incluirse la siguiente ruta:

/usr/local/grass-6.4.0RC5/lib/

Salvamos el fichero y cerramos el editor de texto gedit.

A continuación descargamos el código de las librearías desde el sitio web http://download.osgeo.org/gdal/. Actualmente el paquete más reciente es gdal-grass-1.4.3.tar.gz

Descomprimimos el archivo y accedemos a la carpeta que acabamos de crear mediante el comando:

cd gdal-grass-1.4.3

Configuramos los ficheros para la compilación a través del comando:

./configure --with-grass=/usr/local/grass-6.4.0RC5

Compilamos el código fuente:

make

Y como superusuario o administrador, instalamos las librerías:

sudo make install

Sin abandonar la carpeta donde acabamos de compilar Gdal-Grass ejecutamos el siguiente comando:

sudo ldconfig

Confirmamos que todo funciona correctamente mediante el comando:

gdalinfo --formats | grep 'ECW'

Deberíamos obtener el resultado como que se muestra a continuación:

ECW (rw): ERMapper Compressed Wavelets JP2ECW (rw+): ERMapper JPEG2000

Abandonamos la carpeta hasta un nivel superior

cd ..