我已经研究这个问题好几天了,但还没有找到解决方案。
我正在尝试在我的 ubuntu 18.04 机器上安装 Postgresql-13-postgis-3。目前我已经安装了 Postgresql 13 和 libgdal26 (GDAL 3.0.4);libgdal26 与我的 QGIS 安装 (3.10) 兼容。当我尝试安装 Postgis 时,出现以下错误:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies.
postgis : Depends: libgdal20 (>= 2.0.1) but it is not going to be installed
postgresql-13-postgis-3 : Depends: libgdal20 (>= 2.0.1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
因此,我尝试安装 libgdal20,但它要求删除许多软件包,包括 qgis 和 libgdal26(我需要同时使用 qgis 和 postgis,因此删除 qgis 等不是一个选择)。有没有办法使用 gdal 3.x 安装 postgis?根据他们的文档,似乎是可以的,但我的系统不允许我这样做。其他用户似乎也有类似的问题(请参阅将 gdal 升级到 3.0.4 后在 ubuntu 18.04 上安装 postgis),但没有发布任何解决方案(我试图直接在这篇文章中提问,但问题被删除了)。
与此同时,我设法继续使用 Windows 机器工作。我能够一次性安装所有东西,然后开始工作。到目前为止,ubuntu 中的 GIS 软件(特别是 qGIS 和 GDAl)因未满足的依赖关系而出现很多问题……甚至让我考虑更换操作系统!真遗憾,我知道……
任何帮助是极大的赞赏!
答案1
这里存在依赖冲突。一种解决方案是等到维护人员更新依赖项(或者升级到较新的 Ubuntu 20.04 LTS)。
另一个解决方案是从源代码编译 PostGIS,这并不太复杂。以最新版本的 PostGIS 为例,您可以:
wget https://download.osgeo.org/postgis/source/postgis-3.1.2.tar.gz
tar xf postgis-3.1.2.tar.gz
cd postgis-3.1.2
./configure
make && sudo make uninstall && sudo make install
然后重新启动服务器。
答案2
我遇到了类似的问题。无需更新操作系统,我必须:
删除发行版
cmake
并安装最新版本 3.21.3。编译/安装
CGAL
5.3。编译/安装
SFCGAL
1.4(需要最新版本cmake
才能编译)。编译/更新
GEOS
至 3.8.2。安装以下库:
sudo apt install protobuf-c-compiler libjsoncpp-dev libprotobuf-dev libprotobuf-c-dev libxml2-dev
这不是一个完整的依赖项列表,但是是一个很好的开始。