Instalar Geoserver no Ubuntu 9.10 (com ECW, MrSID e Jpeg2000)

Prefácio
Este guia pretende congregar os diversos processos e guias dispersos na rede necessários à instalação do servidor de mapas Geoserver no sistema operativo Ubuntu na versão 9.10 (Karmic Koala).

O servidor de mapas Geoserver tem como principal característica a total congruência com as normas de serviços espaciais do Open Geospatial Consortium, nomeadamente Web Map Services (WMS) e Web Feature Services (WFS). O Gesoerver permite, entre outras coisas, a edição de informação vectorial através do serviço WFS, como sejam dados armazenados numa base de dados espacial (e.g. PostGis) ou em formato de ficheiro (e.g. Shapefile).

Para além desta característica o Geoserver pode servir um número considerável de formatos matriciais através de WMS recorrendo à biblioteca GDAL. Entre estes encontram-se os formatos criados com algoritmos de compressão baseados na Transformada de Onduletas, com sejam oJpeg2000, MrSID e ECW.

Existem de momento duas versão do Geoserver, uma em formato binário e outra em formato WAR. A primeira inclui um servidor de HTTP dedicado, o Jetty, a segunda serve para uma instalação com um servidor de HTTP existente (e.g. Tomcat). Este guia de instalação contempla apenas a versão binária do Geoserver.

Nota: Em relação aos ECW é importante notar que para servir mapas neste formato é necessário adquirir uma licença ao fabricante, ER Mapper.

Sun Java Development Kit
Esta secção é baseada na FAQ da nixCraft.

O Geoserver está assente na tecnologia Java, pelo que é necessária a instalação prévia do Java Development Kit (JDK). Os programadores do Geoserver aconselham a utilização do JDK distribuído pelo Sun, pois garante maior desempenho por parte do Geoserver.

Para começar há qu garinti que o repositório Multiverse está activado. Para tal aceder a System → Administration → Software Sources. Na secção Ubuntu Software seleccionar a opção Software restricted by copyright or legal issues (multiverse).

A seguir abrir uma linha de comandos e dar início à instalação:

sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk

É também conveniente instalar o pacote de actualizações:

sudo update-java-alternatives -s java-6-sun

A instalação terminou, por defeito o JDK fica instalado no directório /usr/lib/jvm/ dentro de um sub-directório que reflecte a versão instalada; neste guia assume-se que a versão instalada é a 6 da Sun, pelo que este sub-directório será java-6-sun. Há agora que começar actualizar as variáveis de sistema. Para este tipo de edições pode ser usado um dos vários editores de texto instalados por defeito com o Ubuntu, vi, nano, gedit. Neste guia será usado o nano:

sudo nano /etc/jvm

No final deste ficheiro há que adicionar as seguintes linhas:

/usr/lib/jvm/java-6-sun

/usr/lib/jvm/java-gcj

/usr/lib/jvm/ia32-java-1.5.0-sun

/usr/lib/jvm/java-1.5.0-sun

/usr

Por fim há que actualizar as variáveis de ambiente globais, editando o ficheiro /etc/environment:

sudo nano /etc/environment

Neste ficheiro adicionar a linha:

JAVA_HOME="/usr/lib/jvm/java-6-sun"

E na linha que começa por PATH acrescentar no fim o mesmo caminho para o JDK, inserindo :/usr/lib/jvm/java-6-sun antes de fechar as aspas.

Geoserver
Esta secção é baseada num guia de Fernando Quadro.

Para começar há que criar um directório para alojar o Geoserver, neste guia assume-se que este será /usr/lib/Geoserver:

sudo mkdir /usr/lib/Geoserver

sudo chmod 777 /usr/lib/Geoserver

cd /usr/lib/Geoserver/

Agora há que descarregar a versão correcta do Geoserver, aconselhando-se a que seja a última estável. O caminho para os ficheiros binários de intalação pode ser obtido na página do Geoserver.

wget http://downloads.sourceforge.net/geoserver/geoserver-2.0.1-bin.zip

unzip geoserver-2.0.1-bin.zip

mv geoserver-2.0.1 geoserver

Os binários do Geoserver ficaram no directório /usr/lib/Geoserver /geoserver, sendo também aqui que está o directório de dados. Fernando Quadro sugere que se mova o directório de dados para fora dos binários de modo a facilitar actualizações futuras:

mv geoserver/data_dir. Fica a faltar a configuração do ambiente de execução do Geoserver, mas isso será efectuado no final, depois da instalação da extensão para o GDAL.

Imageio-ext
De modo a poder ler e servir ficheiros em formatos matriciais mais complexos e Geoserver usa um conjunto de bibliotecas do GDAL, com o nome de Imageio-ext. Estas bibliotecas têm de ser uma versão específica, pelo que, mesmo que já exista uma versão do GDAL instalada no sistema, tem de ser descarregadas e instaladas.

Verifique através da página do Imageio-ext qual o endereço da última versão estável para descarregar. É aconselhável criar um directório específico para esta extensão; neste guia será /usr/lib/Geoserver/imageio-ext:

mkdir /usr/lib/Geoserver/imageio-ext

cd /usr/lib/Geoserver/imageio-ext

wget https://imageio-ext.dev.java.net/files/documents/7505/144611/imageio-ext-1.0.5-linux32-mrsid-ecw-lib.tar.gz

tar -xvvzf imageio-ext-1.0.5-linux32-mrsid-ecw-lib.tar.gz

É agora necessário descarregar um conjunto de informação necessário ao GDAL para a descodificação de sistemas de coordenadas. Este pacote pode ser descarregado a partir do mesmo repositório de onde foi retirado o Imageio-ext.

mkdir /usr/lib/Geoserver/gdal_data

cd /usr/lib/Geoserver/gdal_data

wget https://imageio-ext.dev.java.net/files/documents/7505/133661/gdal_data-1.4.4.zip

unzip gdal_data-1.4.4.zip

Configuração do ambiente de execução
Com todos os binários instalados no sistema é por fim necessário criar um ficheiro de configuração do ambiente de execução. Este ficheiro define um conjunto de variáveis de ambiente que indicam ao Geoserver a localização dos diversos recursos, nomeadamente:


 * GEOSERVER_DATA_DIR – directório de dados para o Geoserver;
 * GEOSERVER_HOME – raíz dos binários do Geoserver;
 * JAVA_HOME – raíz dos binários do JDK;
 * LD_LIBRARY_PATH – directório das bibliotecas do Imageio-ext;
 * GDAL_DATA – directório dos sistemas de coordenadas do GDAL.

Cria-se então um novo ficheiro de ambiente para o Geoserver:

sudo nano /etc/init.d/geoserver

Neste ficheiro inserir estas linhas:


 * 1) ! /bin/sh -e
 * 2) Author: Luís de Sousa
 * 3) http://wiki.osgeo.org/wiki/Instalar_Geoserver_no_Ubuntu_9.10_%28com_ECW,_MrSID_e_Jpeg2000%29
 * 4) Adapted from Fernando Quadro:
 * 5) http://www.fernandoquadro.com.br/html/2009/05/14/instalando-o-geoserver-no-ubuntu/
 * 1) Adapted from Fernando Quadro:
 * 2) http://www.fernandoquadro.com.br/html/2009/05/14/instalando-o-geoserver-no-ubuntu/

export GEOSERVER_DATA_DIR=/usr/lib/Geoserver/data_dir export GEOSERVER_HOME=/usr/lib/Geoserver/geoserver export JAVA_HOME=/usr/lib/jvm/java-6-sun export LD_LIBRARY_PATH=/usr/lib/Geoserver/imageio-ext export GDAL_DATA=/usr/lib/Geoserver/gdal_data

case "$1" in   start)    /usr/lib/Geoserver/geoserver/bin/startup.sh    ;;    stop) /usr/lib/Geoserver/geoserver/bin/shutdown.sh   ;; force-reload|restart)       $0 stop         $0 start    ;;    *) exit 1 ;;

esac exit 0

Caso o Geoserver esteja instalado num directório diferente do sugerido neste guia deverá modificar os caminhos de acordo. Agora há que dar permissões de execução sobre este ficheiro:

sudo chmod +x /etc/init.d/geoserver

Por fim há que incluir o comando de arranque do Geoserver no ficheiro /etc/rc.local:

sudo nano /etc/rc.local

Acrescente a seguinte linha antes de “exit 0”.

/etc/init.d/geoserver start &

Conclusão
No final deste guia ficarão instalados no sistema o JDK da Sun e o Geoserver, com capacidades de serviço de ficheiros matriciais MrSID, Jpeg2000 e ECW.

Para fechar e/ou iniciar o Geoserver use os comandos:

/etc/init.d/geoserver start &

/etc/init.d/geoserver stop &