我正在使用 ubuntu 18.0.4 并且我有一个 postgresql 数据库。显然我已经安装了postgresql。我也安装了postgis:
sudo apt install postgis postgresql-11-postgis-2.5
使用此命令:
dpkg -l | grep postgresq
它返回:
ii pgdg-keyring 2018.2
all keyring for apt.postgresql.org
ii postgresql 12+210.pgdg18.04+1
all object-relational SQL database (supported version)
ii postgresql-11 11.6-1.pgdg18.04+1
amd64 object-relational SQL database, version 11 server
ii postgresql-11-postgis-2.5 2.5.3+dfsg-2.pgdg18.04+1
amd64 Geographic objects support for PostgreSQL 11
ii postgresql-11-postgis-2.5-scripts 2.5.3+dfsg-2.pgdg18.04+1
all Geographic objects support for PostgreSQL 11 -- SQL scripts
ii postgresql-12 12.1-1.pgdg18.04+1
amd64 object-relational SQL database, version 12 server
ii postgresql-client-11 11.6-1.pgdg18.04+1
amd64 front-end programs for PostgreSQL 11
ii postgresql-client-12 12.1-1.pgdg18.04+1
amd64 front-end programs for PostgreSQL 12
ii postgresql-client-common 210.pgdg18.04+1
all manager for multiple PostgreSQL client versions
ii postgresql-common 210.pgdg18.04+1
all PostgreSQL database-cluster manager
ii postgresql-contrib 12+210.pgdg18.04+1
all additional facilities for PostgreSQL (supported version
并使用此命令:
dpkg -l | grep postgis
它返回:
ii postgis 3.0.0+dfsg-2~exp1.pgdg18.04+1
amd64 Geographic objects support for PostgreSQL
ii postgresql-11-postgis-2.5 2.5.3+dfsg-2.pgdg18.04+1
amd64 Geographic objects support for PostgreSQL 11
ii postgresql-11-postgis-2.5-scripts 2.5.3+dfsg-2.pgdg18.04+1
all Geographic objects support for PostgreSQL 11 -- SQL scripts
但是当我尝试创建扩展时:
CREATE EXTENSION postgis;
它引发了这个错误:
错误:无法打开扩展控制文件>“/usr/share/postgresql/12/extension/postgis.control”:没有这样的文件或目录
为什么我在安装了所有东西后却无法创建此扩展?
您为 PostgreSQL v11 安装安装了 PostGIS,但当您尝试创建扩展时,您已连接到 v12 数据库。
您必须连接到 v11 数据库或为 v12 安装安装 PostGIS。
看来需要安装postgis:
sudo apt install postgis postgresql-postgis
运行以下命令对我有用:
sudo apt-get install postgis postgresql-<POSTGRESQL_VERSION>-postgis-scripts
将
<POSTGRESQL_VERSION>
替换为当前安装的 postgresql 版本。
我也尝试了以下命令,但它对我不起作用。可能是因为版本不匹配。
sudo apt install postgis postgresql-postgis