Tiro monedas al aire, pero hasta ahora nunca las pude agarrar.

Por defecto Ubuntu 12.10 no trae PostGIS 2.0.3, y lo necesitaba para hacer algunas pruebas. Así que manos a la obra para tener PostGIS 2.0.3 y postgresql 9.1.

Entramos a la consola y escribimos:
sudo apt-get install python-software-properties
sudo apt-add-repository ppa:sharpie/for-science
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
sudo aptitude update
sudo aptitude install postgresql-9.1-postgis

Volvemos a escribir en la consola:
sudo aptitude install build-essential postgresql-9.1 postgresql-server-dev-9.1 libxml2-dev proj libjson0-dev xsltproc docbook-xsl docbook-mathml gettext postgresql-contrib-9.1

Necesitamos libGDAL 1.9 (en Ubuntu 12.10 trae una versión 1.9, pero existen más recientes), para que nos funcione toda la integración entre postgis y postgresql.
Entramos de nuevo a la consola:
sudo apt-add-repository ppa:olivier-berten/geo
sudo aptitude update
sudo aptitude install libgdal-dev libgdal1-dev

Ahora verificamos la versión de libGDAL. Deberíamos de tener como mínimo la versión 1.9.0. Escribimos en la consola:
gdal-config --version

Y nos saldría por pantalla algo por el estilo así:
1.9.2

Ahora verificamos la versión del geos. Deberíamos de tener como mínimo la versión 3.3.2. Escribimos en la consola:
geos-config --version

Y nos saldría por pantalla algo por el estilo así:
3.3.3

Ahora por fin le toca el turno a PostGIS. Entramos a la consola y escribimos:
wget -c http://download.osgeo.org/postgis/source/postgis-2.0.3.tar.gz
tar xfvz postgis-2.0.3.tar.gz
cd postgis-2.0.3/
./configure --prefix=/usr/include/gdal --with-geos=/usr/bin/geos-config --with-pg=/usr/lib/postgresql/9.1/bin/pg_config --with-python --with-gui

Por saldría por pantalla:
PostGIS is now configured for x86_64-unknown-linux-gnu

-------------- Compiler Info -------------
C compiler:           gcc -g -O2
C++ compiler:         g++ -g -O2
SQL preprocessor:     /usr/bin/cpp -traditional-cpp -P

————– Dependencies ————–
GEOS config:          /usr/bin/geos-config
GEOS version:         3.3.3
GDAL config:          /usr/bin/gdal-config
GDAL version:         1.9.2
PostgreSQL config:    /usr/bin/pg_config
PostgreSQL version:   PostgreSQL 9.1.9
PROJ4 version:        48
Libxml2 config:       /usr/bin/xml2-config
Libxml2 version:      2.8.0
JSON-C support:       yes
PostGIS debug level:  0
Perl:                 /usr/bin/perl

--------------- Extensions ---------------
PostGIS Raster:       enabled
PostGIS Topology:     enabled

-------- Documentation Generation --------
xsltproc:             /usr/bin/xsltproc
xsl style sheets:     /usr/share/xml/docbook/stylesheet/nwalsh
dblatex:
convert:              /usr/bin/convert
mathml2.dtd:          /usr/share/xml/schema/w3c/mathml/dtd/mathml2.dtd

Ahora escribimos en la consola:
make
sudo make install
sudo ldconfig
sudo make comments-install

Volvemos a escribir en la consola:
sudo ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/shp2pgsql
sudo ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/pgsql2shp
sudo ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/raster2pgsql

Ahora cambiamos el password del usuario postgres. Entramos a la consola:
sudo passwd postgres

Sale esto por pantalla:
Introduzca la nueva contraseña de UNIX:
Vuelva a escribir la nueva contraseña de UNIX:
passwd: contraseña actualizada correctamente

Volvemos a escribir en la consola:
sudo -s -u postgres
psql

Una vez dentro de psql, escribimos en la consola:
\password postgres

Sale esto por consola:
Enter new password:
Enter it again:
postgres=#

Ahora salimos.
\q

OBS:

  • Tienen que tener usuarios con privilegios de root o ser root (PostGres como usuario por defecto no tiene privilegios de root).

Creamos una base de datos y en este caso sería template_postgis. Entramos a la consola y escribimos:
sudo -u postgres createdb template_postgis
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/postgis.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/spatial_ref_sys.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/postgis_comments.sql

Lo de arriba es lo básico para tener una base de datos espacial. Si quieren que la base de datos soporte raster o topology, tienen que realizar lo que describo abajo.

Opcional:
Con soporte a raster.
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/rtpostgis.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/raster_comments.sql

Con soporte a topology.
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/topology.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/topology_comments.sql

Para comprobar si postgis esta funcionando correctamente, hacemos lo siguiente. Escribimos en la consola:
su postgres

Volvemos a escribir en al consola:
psql template_postgis

Ahora estamos en la base de datos template_postgis. Para saber si esta base de datos contiene postgis, escribimos:
SELECT postgis_full_version();

Y nos saldrá por pantalla:
-------------------------------------------------------------------------------------------------
POSTGIS="2.0.3 r11128" GEOS="3.3.3-CAPI-1.7.4" PROJ="Rel. 4.8.0, 6 March 2012" GDAL="GDAL 1.9.2, released 2012/10/08" LIBXML="2.8.0" LIBJSON="UNKNOWN" TOPOLOGY RASTER
(1 row)

Con esto comprobamos que funciona correctamente PostGIS 2.0.3 en nuestra base de datos Postgres.


Comments

  1. Estoy desarrollando plugins para el framework pmapper. Hasta ahora lo hacía en un servidor Windows y Postgresql.
    En estos momentos estoy cambiando a un servidor con Ubuntu Server y este post me ha venido como anillo al dedo ya que la instalación que realiza por defecto de Postgres no incluye la extensión Postgis, esencial para mi.

    La única modificación que he realizado yo es añadir el repositorio de UbuntuGis, pero la versión estable:

    sudo add-apt-repository ppa:ubuntugis/ppa

    Genial post, me ha resultado muy util.
    ¡¡ Gracias !!

  2. al ejecutar esto en consola: sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.0/rtpostgis.sql

    me dice como primer error: type «box3d» does not exist

    a que se debe me podrias ayudar por favor

Responder a Juanra Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *