Índice
PostGIS tem as seguintes exigências para construção e uso:
Uma instalação completa do PostgreSQL (incluindo servidor de headers). PostgreSQL está disponível em http://www.postgresql.org/. Versão 7.2 ou posteriores.
O compilador de GNU C (gcc). Alguns outros compiladores de C ANSI podem ser usados para compilar PostGIS, mas foram achados poucos problemas ao compilar com gcc.
GNU Make (gmake ou make). Para muitos sistemas, GNU make é a versão default que faz falta. Para saber a versão, utilizar make -v. Outras versões de make não podem processar o PostGIS Makefile corretamente.
(Opcional) Biblioteca de reprojeção Proj4. A biblioteca Proj4 é usada para fornecer suporte a reprojeções coordenadas dentro de PostGIS. Proj4 está disponível para baixa em http://www.remotesensing.org/proj.
(Opcional) Biblioteca de geometria GEOS. A biblioteca GEOS é usada para fornecer testes em geometria (Touches(), Contains(), Intersects()) e operações (Buffer(), GeomUnion(), Difference()) com PostGIS. GEOS está disponível para baixa em http://geos.refractions.net/.
O módulo de PostGIS é uma extensão ao PostgreSQL servidor de retaguarda. Assim, PostGIS 1.2.1 requer um acesso completo do servidor de headers PostgreSQL organizado em diretório para compilar. O código fonte PostgreSQL está disponível em http://www.postgresql.org/.
PostGIS 1.2.1 pode ser construído com versões de PostgreSQL 7.2.0 ou posteriores. As versões de PostgreSQL anteriores não são suportadas.
Antes de você compilar os módulos do servidor de PostGIS, terá que compilar e instalar o pacote PostgreSQL.
Se você planeja usar funcionalidade de
GEOS precisará unir PostgreSQL à
biblioteca de C++
padrão:
LDFLAGS=-lstdc++ ./configure [YOUR OPTIONS HERE] |
Este é um trabalho voltado para
exceções em C++ interando com ferramentas de
desenvolvimento mais antigas. Se você
perceber problemas estranhos (inesperadamente fechar uma retaguarda ou
algo semelhante), faça esta tentativa. Isso fará
com que corra o risco de compilar o PostgreSQL.
# cd [postgresql source tree]/contrib |
# ./configure |
# make |
Todos os arquivos são instalados usando informações fornecidas por pg_config.
Bibliotecas são instaladas [pkglibdir]/lib/contrib.
Arquivos de suporte importantes como lwpostgis.sql são
instalados em
prefix]/share/contrib.
PostGIS requer para o PL/pgSQL extensão da linguagem procedural. Antes de carregar o arquivo lwpostgis.sql, terá que habilitar primeiro o PL/pgSQL. Deverá usar o comando createlang. O Guia de Programador PostgreSQL tem os detalhes, caso queira executá-lo manualmente.
# createlang plpgsql [yourdatabase] |
# psql -d [yourdatabase] -f lwpostgis.sql |
Extensões de servidor de PostGIS agora estão carregadas e prontas para uso.
# psql -d [yourdatabase] -f spatial_ref_sys.sql |
Do shell:
# createdb -T template_postgis my_spatial_db |
postgres=# CREATE DATABASE my_spatial_db |
Atualizando bancos de dados espacial existente pode ser complicado como requer a recolocação ou a introdução de novas definições de objeto de PostGIS.
Infelizmente nem todas as definições podem ser substituídas facilmente em um banco de dados vivo, assim às vezes sua melhor aposta são um processo de descarregar/carregar (dump/reload).
PostGIS fornece uma proceduce SOFT UPGRADE para liberações menores ou de pequenas correções (bugfix) e uma procedure HARD UPGRADE para liberações maiores.
Antes de
tentar atualizar o postgis, é sempre válido fazer
uma cópia dos seus dados. Se usar o flag -Fc para pg_dump,
estará apto a restaurar o descarregador com um HARD UPGRADE.
Soft upgrade consiste do fonte de script lwpostgis_upgrade.sql em seu banco de dados espacial:
$ psql -f lwpostgis_upgrade.sql -d your_spatial_database |
Se um soft upgrade não for possível, o script abortará e será advertido sobre o HARD UPGRADE que esá sendo requerido, assim não hesite tentar primeiro um soft upgrade.
Se um melhoramento macio não for possível o certificado abortar e você estará advertido sobre o MELHORAMENTO DURO que está sendo requerido, assim que não hesitate tentar primeiramente um melhoramento macio.
Se você não encontrar o arquivo lwpostgis_upgrade.sql, estará usando uma versão antereior a 1.1 e gerará esse arquivo por si mesmo. Isto é feito com o seguinte comando:
$ utils/postgis_proc_upgrade.pl lwpostgis.sql > lwpostgis_upgrade.sql |
Por HARD UPGRADE pretendemos descarregar/carregar (dump/reload) do banco de dados habilitando o postgis completo. Precisará de um HARD UPGRADE quando o armazenamento interno dos objetos de postgis alterar ou quando o SOFT UPGRADE não for possível. O apêndice Notas de Versão reportará para cada versão se você necessitar descarregar/carregar (HARD UPGRADE) para atualizar.
PostGIS provides an utility script to restore a dump produced with the pg_dump -Fc command. It is experimental so redirecting its output to a file will help in case of problems. The procedure is as follow:
PostGIS fornece um script utilitário para restaurar uma descarga produzida com o comando pg_dump -Fc. Assim, é experimental redirecionar sua saída para um arquivo que o ajudará em caso de problemas. O procedimento é como segue:
Criar um "custom-format" para descarregar do banco de dados se quiser atualizar (chamamos de "olddb").
$ pg_dump -Fc olddb > olddb.dump |
Restaurar a descarga atualizando contextualmente postgis em um banco de dados novo. O novo banco de dados não pode existir. postgis_restore aceita parâmetros createdb depois da descarga de um nome de arquivo (file name) e isso pode por instância ser usado se estiver usando o caracter enconding non-default para seu banco de dados. Chamamos de “newdb”, com UNICODE como o caracter encoding:
$ sh utils/postgis_restore.pl lwpostgis.sql newdb olddb.dump -E=UNICODE > restore.log |
Certificar-se de que todo objeto de descarga restaurado realmente tenha que ser restaurado dda descarga e não entrar em conflito com esses definidos em lwpostgis.sql
$ grep ^KEEPING restore.log | less |
Se atualizar de PostgreSQL < 8.0 para >= 8.0 poderá apagar o attrelid, o varattnum e as colunas do stats na tabela dos geometry_columns, que não é mais necessário. Mantê-los não terá problemas. DROPPING THEM WHEN REALLY NEEDED WILL DO HURT !
$ psql newdb -c "ALTER TABLE geometry_columns DROP attrelid" |
A tabela spatial_ref_sys são recuperadas da descarga, para assegurar seus costumes adicionais são mantidos, mas a distribuição pôde conter modificação como voce recupera suas entradas, apagar a tabela e a fonte de uma nova. Se fizer adições, supomos que conheça como recuperá-las antes de atualizar a tabela. Substituí-la com a nova é feita desta forma:
$ psql newdb |
Existem várias coisas para conferir quando sua instalação ou atualização não acontece como você espera.
Será mais fácil se você descomprimir os arquivos de PostGIS no diretório "contrib" do fonte PostgreSQL em árvore. Porém, se isto não for possível por alguma razão, você poderá criar uma variável de desenvolvimento PGSQL_SRC para o caminho do diretório fonte PostgreSQL Isto permitirá você compilar PostGIS, mas o comando make install pode falhar, assim voce deverá estar preparado para copiar a biblioteca de PostGIS e arquivos executáveis para os seus locais apropriados você.
SELECT version(); |
Se rodar uma distribuição baseada
RPM, voce pode verificar a existência de pacotes
pré-instaladores usando o comando rpm como segue:
rpm -qa | grep
postgresql
Se quiser pode fazer reprojeções coordenadas, deverá instalar a biblioteca de Proj4 em seu sistema, atribuir 1 a variável USE_PROJ e para seu prefixo de instalação PROJ_DIR dentro de Makefile.config.
Se você quer estar hábil para usar funções de GEOS, deverá instalar a biblioteca de GEOS em seu sistema, e atribuir 1 a variável USE_GEOS e para sua instalação GEOS_DIR dentro de Makefile.config.
Entrar no sub-diretório de distribuição de PostGIS jdbc.
Editar Makefile para prover os caminhos corretos de seu compilador de java (JAVAC) e interprete (JAVA).
Executar o comando make. Copiar o arquivo postgis.jar onde quer que mantenha suas bibliotecas de java.
Os dados para o carregador e descarregador são construídos e instalados automaticamente, como parte da construção de PostGIS. Para construí-los e os instalá-los manualmente, execute os comandos, conforme abaixo descritos:
# cd postgis-1.2.1/loader |
O carregador é chamado shp2pgsql e converte arquivos ESRI Shape em SQL apropriado por carregar no PostGIS/PostgreSQL. O descarregador é chamado pgsql2shp e converte tabelas PostGIS em arquivos ESRI Shape.