Visitas: 0
Por defecto Ubuntu Server 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 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
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.10.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.10.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" GDAL="GDAL 1.10.0, released 2013/04/24" LIBXML="2.9.0" LIBJSON="UNKNOWN" TOPOLOGY RASTER
(1 row)
Con esto comprobamos que funciona correctamente PostGIS 2.1.0 en nuestra base de datos Postgres.