Postgis

Per far funzionare postgis sotto linux servono due moduli , il postgis vero e proprio e il connettore alla specifica base di dati ecco un esempio.

apt-get install postgis
apt-get install postgresql-8.4-postgis 
apt-get install postgresql-9.0-postgis

Il processo di installazione in particolare compie due macro operazioni l'installazione di librerie specifiche e la creazione di un modello di template per postgis dentro l'istanza specifica di postgresql.

Versioni

Al momento è disponibile la versione 1.5 di postgis che è una beta per ambienti ubuntu e la versione 1.4 che invece è in stable. Così come postgresql è in beta per la versione 9 mentre è in stable per la versione 8.4

Se installo senza abilitare i repository di unstable lui mette postgis 1.4 su postgresql 8.4 se voglio cambiare questa configurazione devo adottare alcune strategie. Anche perchè la 1.4 di postgis al momento non è molto usata e si usa postgis 1.5 su postgresql 8.4 o 9.x

Installazione Postgis 1.5

È in unstable nel momento in cui scrivo, questa procedura è quella se va tutto liscio ma dato che si possono avere facilmente problemi, meglio scrivere qualche info più completa.

add-apt-repository ppa:ubuntugis/ubuntugis-unstable
apt-get update

Dopo aver aggiunto i repository unstable se effettuiamo un

apt-cache show postgresql-8.4-postgis
apt-cache show postgis

Vediamo che per ogni versione di pacchetto ci sono due versioni, con lo stesso nome, quella stable che si riferisce a postgis 1.4 e quella unstable che si riferisce alla versione 1.5. Attenzione a guardare tutto l'output perchè il pacchetto più aggiornato si trova in testa.

A questo punto possiamo installare i pacchetti che ci servono

La prova sperimentale ci dice che avendo due pacchetti con lo stesso nome con due versioni differenti all'installazione lui mette il pacchetto più aggiornato ma se abbiamo già installato il pacchetto nella versione meno recente dobbiamo prima disinstallarlo.

apt-get remove postgis
apt-get remove postgresql-8.4-postgis 

apt-get install postgis
apt-get install postgresql-8.4-postgis

Postgis verifica e installazione più articolata

| Questa è una bella guida e | questa è una simile

Postgis funziona con il principio che lui crea al momento dell'installazione un db chiamato template_postgis, che viene usato come base per quando si crea un db che necessità l'utilizzo di postgis.

Per verificare che tutto funzioni correttamente e per vedere che versione vi è installata entrare nel db e lanciare la query sotto.

postgres=# \c template_postgis 
template_postgis=# SELECT PostGIS_Version();
            postgis_version            
---------------------------------------
 1.5 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
(1 row)

Con l'installazione in beta di postgis 1.5 lui non fa le operazioni di creazione automatica del template e quindi il db template_postgis descritto prima non esisterà.
Per crealo a mano seguiamo le informazioni della guida.

createdb template_postgis
psql -q -d template_postgis -f /usr/share/postgresql/9.0/contrib/postgis-1.5/postgis.sql
psql -q -d template_postgis -f /usr/share/postgresql/9.0/contrib/postgis-1.5/spatial_ref_sys.sql
psql -q -d template_postgis -f /usr/share/postgresql/9.0/contrib/postgis_comments.sql

e riverifichiamo con il comando sopra per la versione di postgis

Install Postgres 9.1, PostGIS and create PostGIS template on Ubuntu 11.10

Ho preso questa interessante guida da qui https://gist.github.com/1481128 io l'ho installato su una ubuntu 10.04

Ecco il codice che serve.

#!/bin/bash
#
# Install Postgres 9.1, PostGIS and create PostGIS template on a clean Ubuntu 11.10 Oneiric Ocelot box
# http://wildfish.com

# add the ubuntu gis ppa
sudo apt-get -y install python-software-properties
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update

# the big list of apt dependencies to check we have installed
sudo apt-get -y install postgis postgresql-9.1 postgresql-server-dev-9.1 postgresql-contrib-9.1 postgis gdal-bin binutils libgeos-3.2.2 libgeos-c1 libgeos-dev libgdal1-dev libxml2 libxml2-dev libxml2-dev checkinstall proj libpq-dev

sudo mkdir -p '/usr/share/postgresql/9.1/contrib/postgis-1.5'

# fetch, compile and install PostGIS
wget http://postgis.refractions.net/download/postgis-1.5.3.tar.gz
tar zxvf postgis-1.5.3.tar.gz && cd postgis-1.5.3/
sudo ./configure && sudo make && sudo checkinstall --pkgname postgis-1.5.3 --pkgversion 1.5.3-src --default

# now create the template_postgis database template
sudo su postgres -c'createdb -E UTF8 -U postgres template_postgis'
sudo su postgres -c'createlang -d template_postgis plpgsql;'
sudo su postgres -c'psql -U postgres -d template_postgis -c"CREATE EXTENSION hstore;"'
sudo su postgres -c'psql -U postgres -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql'
sudo su postgres -c'psql -U postgres -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql'
sudo su postgres -c'psql -U postgres -d template_postgis -c"select postgis_lib_version();"'
sudo su postgres -c'psql -U postgres -d template_postgis -c "GRANT ALL ON geometry_columns TO PUBLIC;"'
sudo su postgres -c'psql -U postgres -d template_postgis -c "GRANT ALL ON spatial_ref_sys TO PUBLIC;"'
sudo su postgres -c'psql -U postgres -d template_postgis -c "GRANT ALL ON geography_columns TO PUBLIC;"'
echo "Done!"
Salvo diversa indicazione, il contenuto di questa pagina è sotto licenza Creative Commons Attribution-ShareAlike 3.0 License