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

From OSGeo
Revision as of 14:31, 20 April 2010 by Lads (talk | contribs) (→‎Prefácio)
Jump to navigation Jump to search

Prefácio

Este guia pretende congregar os diversos processos e guias dispersos na rede necessários à instalação do servidor de mapas Geoserver[1] no sistema operativo Ubuntu[2] 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[3], nomeadamente Web Map Services[4] (WMS) e Web Feature Services[5] (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[6]) ou em formato de ficheiro (e.g. Shapefile[7]).

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[8], com sejam o Jpeg2000[9], MrSID[10] e ECW[11].

Existem de momento duas versão do Geoserver, uma em formato binário e outra em formato WAR[12]. A primeira inclui umservidor de HTTP dedicado, o Jetty[13], a segunda serve para uma instalação com um servidor de HTTP existente (e.g. Tomcat[14]). 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[15].

Sun Java Development Kit

Esta secção é baseada na FAQ da nixCraft[16].

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 SystemAdministrationSoftware 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[17].

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[18].

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[19]. 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[20].

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:

#! /bin/sh -e
#
# Author: Luís de Sousa
#
# Adapted from Fernando Quadro:
# 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 &