Visitas: 2
Por defecto Ubuntu 12.04 no trae PostGIS 2.0, y lo necesitaba para hacer algunas pruebas, porque lo que leí sobre esta versión que tenia muchas novedades y especialmente en las capas raster. Así que manos a la obra para tener postgis 2.0 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 apt-add-repository ppa:sharpie/postgis-nightly
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update
sudo apt-get install postgresql-9.1-postgis
Volvemos a escribir en la consola:
sudo apt-get 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, 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 apt-get update
sudo apt-get 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.1
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.4
Ahora por fin le toca el turno a PostGIS. Entramos a la consola y escribimos:
wget http://postgis.refractions.net/download/postgis-2.0.1.tar.gz
tar xfvz postgis-2.0.1.tar.gz
cd postgis-2.0.1/
./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 i686-pc-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.4
GDAL config: /usr/bin/gdal-config
GDAL version: 1.9.1
PostgreSQL config: /usr/bin/pg_config
PostgreSQL version: PostgreSQL 9.1.4
PROJ4 version: 47
Libxml2 config: /usr/bin/xml2-config
Libxml2 version: 2.7.8
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:
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.
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_full_version
--------------------------------------------------------------------------------------------------------------------------------------------------------------
POSTGIS="2.0.1 r9979" GEOS="3.3.4-CAPI-1.7.3" PROJ="Rel. 4.8.0, 6 March 2012" GDAL="GDAL 1.9.1, released 2012/05/15" LIBXML="2.7.8" LIBJSON="UNKNOWN" RASTER
(1 row)
Con esto comprobamos que funciona correctamente PostGIS 2.0 en nuestra base de datos. En otras entradas hablaré más sobre raster y utilidades sobre PostGIS 2.0.
Fuente 1: OSGEO
Fuente 2: George MacKerron: code blog
Fuente 3: Kudos
Fuente 4: PostGis
Hola saludos cordiales excelente tutorial…pero tengo inconvenientes, tengo todo bien en la instalacion hasta ingresar los siguientes comandos:
– sudo -s -u postgres
– psql
ingreso este útlimo y me arroja los siguientes resulatdos:
psql: could not connect to server: No existe el archivo o el directorio
Is the server running locally and accepting
connections on Unix domain socket «/var/run/postgresql/.s.PGSQL.5433»?
espero me sepan ayudar con este inconveniente, ya que necesito de suma urgencia el postgis!!!!!
¿Especificamente que versión de ubuntu usas, o cual es la distro? ¿Cual es la versión de postgres?
uso ubuntu 12.04 y postgresql 9.1
y seguiste los mismos pasos que coloque en el post. No se porque te sale así.
proba con este link http://serverfault.com/questions/269957/postgresql-not-connecting-after-upgrading-to-ubuntu-11-04
Hola yo hice una instalación muy parecida pero totalmente manual, el problema que encuentro es que la hacer la base de datos «template_postgis», no se crea la tabla de geometry_columns». Solo tengo una tabla, sabes tu a que se debe la falta de esta tabla?
Daniel: en postgis 2.0 aparece en view el geometry_columns. saludos, jose
hola:
disculpa, puedo realizar estos pasos en un ubuntu que no sea server?
lo que pasa es que quiero probar PostGIS, pero en mi tarro uso Ubuntu 12.04 desktop.
de ante mano muchas gracias.
Hola JHonny:
Si puedes hacerlo. En cualquiera de los dos Ubuntu podes instalar. Sea Desktop o Server. Cualquier inconveniente o duda, podes preguntar en los comentarios. XD
gracias, cualquier cosa, no dudare en preguntar.
🙂
una pequeña consulta…
viendo en detalles la instalacion, me he percatado que se instalo libGDAl y GEOS, pero no logro entender para que sirven…
me puedes explicar para que sirven (sobre todo GEOS)..
de antemanos muchas gracias.
atte.
Jhonny
Hola muy bueno el tutorial. Queria hacer una consulta: cuando intento crear template_postgis, me sale el siguiente error «postgres no está en el archivo sudoers. Se informará de este incidente.»
Hola Sebastos:
Me estoy dando cuenta que coloque mal. En vez de escribir «su postgis», deberías de escribir en la consola «su postgres» y ahí te va a funcionar. Ya corregí en el post. gracias por preguntar. 🙂
Genial master!!
Me tomo el tiempo en comentar únicamente para Felicitarte y Agradecerte por este muy buen y magnífico Tutorial. Sacaste todos los aplausos y congratulaciones al mejor tutorial.
Realmente es el primer tutorial que funciona al pie de la letra.
Felicitaciones y aplausos.
Atentamente,
Fernando Velasco Pérez
Fernando: muchas gracias . Se agradece mucho leer comentarios así.
Espero leerte más en los comentarios. 🙂
saludos, jose