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

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

Entramos a la consola y escribimos:
sudo aptitude update
sudo apt-get install python-software-properties
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

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.0

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.8

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.1.0.tar.gz
tar xfvz postgis-2.1.0.tar.gz
cd postgis-2.1.0/
./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.8
GDAL config:          /usr/bin/gdal-config
GDAL version:         1.9.0
PostgreSQL config:    /usr/bin/pg_config
PostgreSQL version:   PostgreSQL 9.1.9
PROJ4 version:        48
Libxml2 config:       /usr/bin/xml2-config
Libxml2 version:      2.9.0
JSON-C support:       yes
PostGIS debug level:  0
Perl:                 /usr/bin/perl

--------------- Extensions ---------------
PostGIS Raster:       enabled
PostGIS Topology:     enabled
SFCGAL support:       disabled

-------- Documentation Generation --------
xsltproc:             /usr/bin/xsltproc
xsl style sheets:     /usr/share/xml/docbook/stylesheet/nwalsh
dblatex:
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.1/postgis.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.1/spatial_ref_sys.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.1/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.1/rtpostgis.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.1/raster_comments.sql

Con soporte a topology.
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.1/topology.sql
sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-2.1/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.1.0 r11822" GEOS="3.3.8-CAPI-1.7.8" PROJ="Rel. 4.8.0, 6 March 2012" LIBXML="2.9.0" LIBJSON="UNKNOWN"
(1 row)

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

Comments

comments


Deja una respuesta

Tu dirección de correo electrónico no será publicada.