尝试创建扩展时出现PostgreSQL错误

时间:2013-09-09 10:20:50

标签: database postgresql

ERROR: could not open extension control file "/usr/share/postgresql/9.1/extension/postgis.control": No such file or directory

当我尝试CREATE EXTENSION postgis;时,我能得到的是任何人都可以告诉我为什么会这样,我该怎么做才能解决它?

15 个答案:

答案 0 :(得分:26)

以下内容将为您提供Ubuntu 12.04上的postgis安装工作(注意:也在13.10上测试)

echo "deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main" | sudo tee /etc/apt/sources.list.d/postgis.list
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql-9.3 postgresql-9.3-postgis-2.1 postgresql-client-9.3
sudo -u postgres psql -c 'create extension postgis;'

基于https://wiki.postgresql.org/wiki/Apt

的文档

答案 1 :(得分:20)

您需要安装postgresql-9.1-postgis-scripts。在Ubuntu或Debian中,您需要以root身份运行以下命令:

apt-get install postgresql-9.1-postgis-scripts

这会添加创建postgis扩展名所需的文件。

答案 2 :(得分:10)

在我的Linux Mint 16盒子上安装这个软件包对我起了作用:

# install hstore postgresql extension.
sudo apt-get install postgresql-contrib

答案 3 :(得分:5)

DanielVérité接近事实,但还不够。缺少的包是postgresql-9.1-postgis-2.0

sudo apt-get install postgresql-9.1-postgis-2.0

答案 4 :(得分:4)

大概你安装的postgis版本是1.5.x,它不作为扩展,而是作为一些需要手动应用来创建必要的SQL对象的SQL脚本。

postgis包还不够,它只包含不依赖于PG版本的内容,需要postgresql-9.1-postgisdpkg -L package-name方便查看提供的文件任何特定的包裹。)

知道安装路径后,官方install documentation应该足以设置模板数据库。

答案 5 :(得分:4)

刚刚解决了。 你必须卸载po​​stgis-1.5。你安装了PostGIS 2.0的instaed。只要您安装postgis-2.0,您就会在扩展目录中看到更正的库。 在安装之前,您应该添加正确的存储库(请参阅http://docs.pgrouting.org/2.0/en/doc/src/installation/index.html#ubuntu-debian)。使用ppa:ubuntugis/ubuntugis-unstable用于PostGIS 2.0。 尝试其中一个

apt-get remove postgis
apt-get remove postgresql-9.1-postgis
apt-get install postgresql-9.1-postgis

由于依赖项错误,我无法删除和安装。 经过几次尝试后,我刚刚删除postgresql-9.1-postgis并且apt-get提供我将其升级到2.0。

答案 6 :(得分:3)

我在Window 8.1设置上遇到了同样的问题。

我通过简单地使用Postgres附带的Application StackBuilder并再次安装PostGIS(尽管没有卸载它)来解决它。

现在工作正常!

答案 7 :(得分:3)

在C:\ Program Files \ PostgreSQL \ 9.4中,我找到了uninstall-postgis-bundle-pg94x64-2.1.5-2.exe。运行它解决了我的问题,这是由于在没有首次卸载的情况下重新安装PostgreSQL引起的,并且没有第二次安装PostGIS。这就是当你不止一个人安装东西时会发生什么......

答案 8 :(得分:2)

确保您已安装此

sudo apt-get install postgresql-9.3-postgis

由于错过了此套餐,我遇到了同样的问题。

答案 9 :(得分:2)

在14.04,有postgresql-9.3-postgis-scriptscontains postgis.control个文件。

答案 10 :(得分:1)

尝试一下

@netbasal/content-loader

答案 11 :(得分:0)

CentOS需要针对此问题的不同包。对于CentOS 6,如果您在http://yum.pgdgrpms.org/9.3/redhat/使用PGDG yum存储库,请使用命令' yum install postgresql93-contrib安装postgresql93-contrib软件包。

根据需要更新和编辑PostgreSQL 9.4。

答案 12 :(得分:0)

在SLES 12 SP1上安装Postgis 2.X时,我遇到了最糟糕的噩梦。在zypper repo中没有兼容的软件包

以下是在运行9.4.X

的Postgres服务器实例上如何解决它

根据错误在PostGis之前安装的Prerequsite软件包

Proj 4 Download source cold, Build --> make install
install Gdal andjibson by adding zypper repo zypper addrepo http://download.opensuse.org/repositories/Application:Geo/SLE_12_SP1_Backports/Application:Geo.repo
zypper install gdal gdal-devel libjson-c-devel libjson

安装Postgis

Download postgis source code (http://download.osgeo.org/postgis/source/postgis-2.3.0rc1.tar.gz)

Go to Postgis folder 
./configure --with-pgconfig=/usr/lib/postgresql94/bin/pg_config --with-geosconfig=/usr/local/bin/geos-config 
make 
make install

现在如果你转到postgress DB并创建扩展postgis;它会起作用

重要,在配置时应指定pg-config路径和geosconfig路径,并且您不应该包含"没有Raster"因为RASTER在创建postgis扩展中起主要作用

答案 13 :(得分:0)

这项工作对我来说

   SELECT PostGIS_full_version();

在查询面板中创建postgisis以上查询

要从数据库中删除postgis,请运行以下查询

   drop extension postgis

答案 14 :(得分:0)

如果您使用的是Windows系统,请下载postgis.bundle.exe并手动安装在C:/(PostgreSQLdirectory/version/ )中,这就是全部。