Version 2 (modified by 16 years ago) ( diff ) | ,
---|
GeoDjango Ubuntu Installation
The GeoDjangoInstall wiki describes in detail how to install GeoDjango dependencies from source, which for many reasons is the ideal approach. However, with the recent Ubuntu releases you can also use the Synaptic Package Manager (apt-get install on the command line) to handle much of the installation work for you.
Short Version
- Django from trunk
- Add the Ubuntu universe and multiverse debs
- Update and upgrade Ubuntu with Apt-get
- easy_install Pycopg2
- If you need Postgres and Apache apt-get 'em
- make sure to grab the dev versions
- make sure you edit pg_hba.conf to allow django
- Apt-get postgis, libgdal, libgeos, and proj
- Create your PostGIS enabled PostgreSQL db
Full Instructions
Step 1
Add the universe and multiverse debian repositories
#if you have the desktop edition sudo gedit /etc/apt/sources.list #if you have the server edition sudo nano /etc/apt/sources.list # if you know how to use vim, you probably don't need to be reading this page! sudo vim /etc/apt/sources.list ## Add these Universe / Multiverse sites to the bottom of the page ## Make sure to specify the correct Ubuntu version deb http://archive.ubuntu.com/ubuntu gutsy universe multiverse deb-src http://archive.ubuntu.com/ubuntu gutsy universe multiverse deb http://archive.ubuntu.com/ubuntu gutsy-security universe multiverse deb-src http://archive.ubuntu.com/ubuntu gutsy-security universe multiverse deb http://archive.ubuntu.com/ubuntu gutsy-updates universe multiverse deb-src http://archive.ubuntu.com/ubuntu gutsy-updates universe multiverse
Step 2
Then upgrade and update ubuntu based on these new sources
apt-get update apt-get upgrade
Step 3
Use easy_install to install psycopg2
wget http://peak.telecommunity.com/dist/ez_setup.py sudo python ez_setup.py sudo easy_install psycopg2
Step 4
Install Apache and PostgreSQL (if you need them)
apt-get install apache2 apache2-threaded-dev apache2-doc apache2-mpm-prefork apache2-utils ssl-cert
sudo apt-get install postgresql postgresql-contrib postgresql-server-dev-8.3 # or -8.2
- Then make sure that the postgresql programs are on your path or in .bash_profile
Export PATH=/usr/lib/postgresql/8.3/bin/
- Open up access in the pg_hba.conf file
sudo vim /etc/postgresql/8.2/main/pg_hba.conf #change ident sameuser to trust # comment out this line to allow, for instance, to django/psycopg2 to connect without password local all postgres ident sameuser
- Restart the server by switching into the default user
sudo su - postgres pg_ctl -o -i -D /var/lib/postgresql/8.3/main/ restart
- Restart the server by switching into the default user
Step 5
Apt-get install postgis, libgdal, libgeos, and proj
- Note: search for the exact package names with
apt-cache search GIS_LIB_NAME
apt-get install postgresql-8.2-postgis libgeos-dev libgeos-c1 libgdal1-dev proj
Step 6
Create your PostGIS database
# Switch to the default postgres user sudo su - postgres # Create a template database with UTF encoding owned by the postgres user (or your user of choice) createdb -E UTF8 -O postgres -U postgres template_postgis # Now you can switch back to your normal user exit # Load the required procedural language for postgis createlang plpgsql -d template_postgis -U postgres # Load optional languages # Load postgis functions and spatial reference info # which likely was installed in the postgres share directory pg_config --sharedir /usr/local/pgsql/share # Also look for lwpostgis.sql and spatial_ref_sys.sql in: ls /usr/share/ # or /usr/local/share/ psql -d template_postgis -U postgres -f /usr/share/postgresql-8.3-postgis/lwpostgis.sql # Note: ignore any NOTICES, like 'psql:/usr/share/lwpostgis.sql:44: NOTICE: type "histogram2d" is not yet defined' # You should see output like: BEGIN CREATE FUNCTION CREATE OPERATOR [...] CREATE TYPE CREATE AGGREGATE COMMIT # If you get an error about not being able to find `geos` add: /usr/local/lib to /etc/ld.so.conf # And run: ldconfig # Then restart PostgreSQL # Then load the geographic projections table psql -d template_postgis -U postgres -f /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql
Whoa! Hopefully that worked, and you will only have to do it once!
From then on create a PostGIS database like:
createdb -U postgres -T template_postgis DB_NAME
Step 7
Return to GeoDjangoInstall for troubleshooting and tests for GDAL and GEOS (see bottom of page)