2014-10-01 88 views
5

我正试图在我的Ubuntu系统上为django框架安装Postgis。但每次当我运行命令./configure它给了我错误错误:请安装PostgreSQL服务器开发包并重新运行配置

error: the PGXS Makefile /usr/lib/postgresql/9.3/lib/pgxs/src/makefiles/pgxs.mk cannot be found. Please install the PostgreSQL server development packages and re-run configure. 

我已经在我的系统上安装了postgres,并且还创建了用户。但我无法在我的系统上安装Postgis。我已经通过了我在互联网上找到的许多说明,但未能安装它。

请告诉我这个错误的解决方案,以便我可以在Ubuntu上安装Postgis。 帮助将得到高度赞赏

+1

为了将来的参考,这对于superuser.com或者serverfault.com而不是stackoverflow.com更合适。请参阅游览和常见问题。 – 2014-10-01 06:08:53

+1

你为什么从头开始构建postgis?试试[apt库](https://wiki.postgresql.org/wiki/Apt)。 – 2014-10-01 06:15:29

+0

好的@Craig Ringer,我会在提到你的网站上问sch问题。谢谢 – 2014-10-01 06:49:50

回答

8

假设你正在使用PostgreSQL从http://apt.postgresql.org/

apt-get install postgresql-server-dev-9.3 

当你在它,@BurhanKhalid指出,你应该只从包安装PostGIS的,而不是从源,as the PostGIS web page explains

apt-get install postgis2_93 
+0

是的,它解决了这个错误,但现在我得到另一个错误,它是'django.core.exceptions.ImproperlyConfigured:无法确定PostGIS版本的数据库“mentorhip62”。 GeoDjango至少需要PostGIS版本1.3。是从空间数据库模板创建的数据库吗?我按照django中的描述创建了空间模板的数据库。 – 2014-10-01 06:51:16

+0

@SajidAhmad在现代PostGIS版本中,您通常会使用'CREATE EXTENSION postgis;'代替。但无论如何,这是一个单独的问题。如果在工作一段时间之后仍然陷入困境,请发布一个新问题并将其链接回上下文。 – 2014-10-01 07:36:03

+0

@SajidAhmad另外,请参阅更新。您应该像PostGIS网站所说的那样从包中安装PostGIS。 – 2014-10-01 07:39:04

2

安装PostgreSQL

sudo apt-get install postgresql postgresql-contrib 

安装Postgis。

sudo add-apt-repository ppa:gwibber-daily/ppa 
sudo apt-get update 
sudo apt-get install postgresql-9.3-postgis-2.1 
sudo apt-get install postgresql-server-dev-9.3 

在PostgreSQL

createuser -U postgres username -S -D -R 
psql -U postgres -c "alter role username with password 'passhere';" 
createdb -U postgres -T template_postgis -O username dbname 

创建数据库,如果你没有在PostgreSQL中template_postgis然后 切换到用户的Postgres和运行

sudo su postgres 
createdb template_postgis 
createlang plpgsql template_postgis 

现在用于创建extansions

psql -d dbname -c "CREATE EXTENSION postgis;" 
psql -d dbname -c "CREATE EXTENSION postgis_topology;" 
+1

你不再需要'template_postgis'了,它只是扩展存在之前的遗留物。现在你可能只需在每个数据库中创建EXTENSION就可以使用PostGIS。 – 2014-10-01 07:36:34

相关问题