From c7618d5fa642f608459b3eb50074c7039abb3709 Mon Sep 17 00:00:00 2001 From: Justin Bronn Date: Sun, 13 Feb 2011 01:50:54 +0000 Subject: [PATCH] Updated GeoDjango installation docs and spatial database template script for latest Ubuntu/Debian packages. git-svn-id: http://code.djangoproject.com/svn/django/trunk@15520 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- .../gis/create_template_postgis-debian.sh | 45 +++++++++-- docs/ref/contrib/gis/install.txt | 81 ++++++++++--------- 2 files changed, 81 insertions(+), 45 deletions(-) diff --git a/docs/ref/contrib/gis/create_template_postgis-debian.sh b/docs/ref/contrib/gis/create_template_postgis-debian.sh index 46bd074ff6..61bbef40a1 100755 --- a/docs/ref/contrib/gis/create_template_postgis-debian.sh +++ b/docs/ref/contrib/gis/create_template_postgis-debian.sh @@ -1,9 +1,38 @@ -#!/usr/bin/env bash -POSTGIS_SQL_PATH=/usr/share/postgresql-8.3-postgis -createdb -E UTF8 template_postgis # Create the template spatial database. -createlang -d template_postgis plpgsql # Adding PLPGSQL language support. -psql -d postgres -c "UPDATE pg_database SET datistemplate='true' WHERE datname='template_postgis';" -psql -d template_postgis -f $POSTGIS_SQL_PATH/lwpostgis.sql # Loading the PostGIS SQL routines -psql -d template_postgis -f $POSTGIS_SQL_PATH/spatial_ref_sys.sql -psql -d template_postgis -c "GRANT ALL ON geometry_columns TO PUBLIC;" # Enabling users to alter spatial tables. +#!/bin/bash + +# For Ubuntu 8.x and 9.x releases. +if [ -d "/usr/share/postgresql-8.3-postgis" ] +then + POSTGIS_SQL_PATH=/usr/share/postgresql-8.3-postgis + POSTGIS_SQL=lwpostgis.sql +fi + +# For Ubuntu 10.04 +if [ -d "/usr/share/postgresql/8.4/contrib" ] +then + POSTGIS_SQL_PATH=/usr/share/postgresql/8.4/contrib + POSTGIS_SQL=postgis.sql +fi + +# For Ubuntu 10.10 (with PostGIS 1.5) +if [ -d "/usr/share/postgresql/8.4/contrib/postgis-1.5" ] +then + POSTGIS_SQL_PATH=/usr/share/postgresql/8.4/contrib/postgis-1.5 + POSTGIS_SQL=postgis.sql + GEOGRAPHY=1 +else + GEOGRAPHY=0 +fi + +createdb -E UTF8 template_postgis && \ +createlang -d template_postgis plpgsql && \ +psql -d postgres -c "UPDATE pg_database SET datistemplate='true' WHERE datname='template_postgis';" && \ +psql -d template_postgis -f $POSTGIS_SQL_PATH/$POSTGIS_SQL && \ +psql -d template_postgis -f $POSTGIS_SQL_PATH/spatial_ref_sys.sql && \ +psql -d template_postgis -c "GRANT ALL ON geometry_columns TO PUBLIC;" && \ psql -d template_postgis -c "GRANT ALL ON spatial_ref_sys TO PUBLIC;" + +if ((GEOGRAPHY)) +then + psql -d template_postgis -c "GRANT ALL ON geography_columns TO PUBLIC;" +fi diff --git a/docs/ref/contrib/gis/install.txt b/docs/ref/contrib/gis/install.txt index 220f2de90c..ee1247deaf 100644 --- a/docs/ref/contrib/gis/install.txt +++ b/docs/ref/contrib/gis/install.txt @@ -89,7 +89,7 @@ Program Description Required ======================== ==================================== ================================ ========================== :ref:`GEOS ` Geometry Engine Open Source Yes 3.2, 3.1, 3.0 `PROJ.4`_ Cartographic Projections library Yes (PostgreSQL and SQLite only) 4.7, 4.6, 4.5, 4.4 -:ref:`GDAL ` Geospatial Data Abstraction Library No (but, required for SQLite) 1.7, 1.6, 1.5, 1.4 +:ref:`GDAL ` Geospatial Data Abstraction Library No (but, required for SQLite) 1.8, 1.7, 1.6, 1.5, 1.4 :ref:`GeoIP ` IP-based geolocation library No 1.4 `PostGIS`__ Spatial extensions for PostgreSQL Yes (PostgreSQL only) 1.5, 1.4, 1.3 `SpatiaLite`__ Spatial extensions for SQLite Yes (SQLite only) 2.4, 2.3 @@ -176,7 +176,7 @@ When GeoDjango can't find GEOS, this error is raised:: The most common solution is to properly configure your :ref:`libsettings` *or* set :ref:`geoslibrarypath` in your settings. -If using a binary package of GEOS (e.g., on Ubuntu 8.10), you may need to :ref:`binutils`. +If using a binary package of GEOS (e.g., on Ubuntu), you may need to :ref:`binutils`. .. _geoslibrarypath: @@ -274,9 +274,9 @@ supports :ref:`GDAL's vector data ` capabilities [#]_. First download the latest GDAL release version and untar the archive:: - $ wget http://download.osgeo.org/gdal/gdal-1.7.3.tar.gz - $ tar xzf gdal-1.7.3.tar.gz - $ cd gdal-1.7.3 + $ wget http://download.osgeo.org/gdal/gdal-1.8.0.tar.gz + $ tar xzf gdal-1.8.0.tar.gz + $ cd gdal-1.8.0 Configure, make and install:: @@ -517,14 +517,15 @@ user. For example, you can use the following to become the ``postgres`` user:: whereas version 1.4 uses ``/contrib/postgis.sql`` and version 1.5 uses ``/contrib/postgis-1.5/postgis.sql``. + To complicate matters, :ref:`ubuntudebian` distributions have their + own separate directory naming system that changes each release. + The example below assumes PostGIS 1.5, thus you may need to modify ``POSTGIS_SQL_PATH`` and the name of the SQL file for the specific version of PostGIS you are using. Once you're a database super user, then you may execute the following commands -to create a PostGIS spatial database template. If running Ubuntu :ref:`ibex` -or Debian :ref:`lenny`, please refer to their specific documentation for -modifications to these commands:: +to create a PostGIS spatial database template:: $ POSTGIS_SQL_PATH=`pg_config --sharedir`/contrib/postgis-1.5 # Creating the template spatial database. @@ -549,6 +550,7 @@ PostGIS Version Shell Script 1.3 `create_template_postgis-1.3.sh`_ 1.4 `create_template_postgis-1.4.sh`_ 1.5 `create_template_postgis-1.5.sh`_ +Debian/Ubuntu `create_template_postgis-debian.sh`_ =============== ========================================== Afterwards, you may create a spatial database by simply specifying @@ -919,22 +921,30 @@ __ http://www.macports.org/ Ubuntu & Debian GNU/Linux ------------------------- +.. note:: + + The PostGIS SQL files are not placed the PostgreSQL share directory in the + Debian and Ubuntu packages, and are located instead special directory + depending on the release. Thus, when :ref:`spatialdb_template` use the + `create_template_postgis-debian.sh`_ script instead + .. _ubuntu: Ubuntu ^^^^^^ -.. _heron: +.. _ubuntu10: -8.04 and lower -~~~~~~~~~~~~~~ +10.04 and 10.10 +~~~~~~~~~~~~~~~ -The 8.04 (and lower) versions of Ubuntu use GEOS v2.2.3 in their binary packages, -which is incompatible with GeoDjango. Thus, do *not* use the binary packages -for GEOS or PostGIS and build some prerequisites from source, per the instructions -in this document; however, it is okay to use the PostgreSQL binary packages. +In Ubuntu 10 PostgreSQL was upgraded to 8.4 and GDAL was upgraded to 1.6. +Ubuntu 10.04 uses PostGIS 1.4, while Ubuntu 10.10 uses PostGIS 1.5 (with +geography support). The installation commands are:: -For more details, please see the Debian instructions for :ref:`etch` below. + $ sudo apt-get install binutils gdal-bin postgresql-8.4-postgis \ + postgresql-server-dev-8.4 python-psycopg2 python-setuptools + $ sudo easy_install Django .. _ibex: @@ -943,7 +953,7 @@ For more details, please see the Debian instructions for :ref:`etch` below. Use the synaptic package manager to install the following packages:: - $ sudo apt-get install binutils libgdal1-1.5.0 postgresql-8.3-postgis \ + $ sudo apt-get install binutils gdal-bin postgresql-8.3-postgis \ postgresql-server-dev-8.3 python-psycopg2 python-setuptools Afterwards, you may install Django with Python's ``easy_install`` script (the @@ -970,24 +980,14 @@ Optional packages to consider: * ``gdal-bin``: for GDAL command line programs like ``ogr2ogr`` * ``python-gdal`` for GDAL's own Python bindings -- includes interfaces for raster manipulation -10.04 -~~~~~ - -In Ubuntu 10.04 LTS PostgreSQL was upgraded to 8.4, as was GDAL, which is now -at version 1.6.0. Because of that, the package installation mentioned above -has to be slightly changed:: - - $ sudo apt-get install binutils libgdal1-1.6.0 postgresql-8.4-postgis \ - postgresql-server-dev-8.4 python-psycopg2 python-setuptools - - .. note:: - The Ubuntu ``proj`` package does not come with the datum shifting files - installed, which will cause problems with the geographic admin because - the ``null`` datum grid is not available for transforming geometries to the - spherical mercator projection. A solution is to download the - datum-shifting files, create the grid file, and install it yourself:: + On this version of Ubuntu the ``proj`` package does not come with the + datum shifting files installed, which will cause problems with the + geographic admin because the ``null`` datum grid is not available for + transforming geometries to the spherical mercator projection. A solution + is to download the datum-shifting files, create the grid file, and + install it yourself:: $ wget http://download.osgeo.org/proj/proj-datumgrid-1.4.tar.gz $ mkdir nad @@ -1000,11 +1000,17 @@ has to be slightly changed:: do not plan on doing any database transformation of geometries to the Google projection (900913). -.. note:: +.. _heron: - The PostGIS SQL files are not placed the PostgreSQL share directory in the - Ubuntu packages. Use the `create_template_postgis-debian.sh`_ script - instead when :ref:`spatialdb_template`. +8.04 and lower +~~~~~~~~~~~~~~ + +The 8.04 (and lower) versions of Ubuntu use GEOS v2.2.3 in their binary packages, +which is incompatible with GeoDjango. Thus, do *not* use the binary packages +for GEOS or PostGIS and build some prerequisites from source, per the instructions +in this document; however, it is okay to use the PostgreSQL binary packages. + +For more details, please see the Debian instructions for :ref:`etch` below. .. _debian: @@ -1051,6 +1057,7 @@ directions carefully. 5.0 (Lenny) ^^^^^^^^^^^ + This version is comparable to Ubuntu :ref:`ibex`, so the command is very similar::