为什么无法在 RHEL 8 / CentOS 8 上安装 PostGIS 3?

use*_*542 5 postgresql hdf5 osgeo xerces-c postgis-installation

我尝试在 CentOS 8 上安装最新的 PostGIS 3.0.x,但没有成功。

我认为没有人在 RHEL 8 或 CentOS 8 上运行 PostGIS,我不明白为什么不这样做。貌似无法安装。

我已通过禁用 RHEL AppStream 成功安装了 Postgres 12.0

我在 CentOS 8 上安装 postgres 12 所采取的步骤:

1)

#dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Run Code Online (Sandbox Code Playgroud)

2)

#dnf --disablerepo AppStream install postgresql12
#dnf --disablerepo AppStream install postgresql12-server
Run Code Online (Sandbox Code Playgroud)

我现在正在尝试安装 PostGIS。

#dnf list --available | grep postgis30
Run Code Online (Sandbox Code Playgroud)

我看到 postgis30_96 是最新提供的(如下所列):

postgis30_96.x86_64                                  3.0.0alpha4-6.rhel8                                     pgdg96               
postgis30_96-client.x86_64                           3.0.0alpha4-6.rhel8                                     pgdg96               
postgis30_96-client-debuginfo.x86_64                 3.0.0alpha4-6.rhel8                                     pgdg96               
postgis30_96-debuginfo.x86_64                        3.0.0alpha4-6.rhel8                                     pgdg96               
postgis30_96-devel.x86_64                            3.0.0alpha4-6.rhel8                                     pgdg96               
postgis30_96-docs.x86_64                             3.0.0alpha4-6.rhel8                                     pgdg96               
postgis30_96-gui.x86_64                              3.0.0alpha4-6.rhel8                                     pgdg96               
postgis30_96-gui-debuginfo.x86_64                    3.0.0alpha4-6.rhel8                                     pgdg96               
postgis30_96-utils.x86_64                            3.0.0alpha4-6.rhel8                                     pgdg96
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下命令安装时:

#dnf install postgis30_96
Run Code Online (Sandbox Code Playgroud)

我收到这些错误:

Last metadata expiration check: 1:22:58 ago on Tue 15 Oct 2019 08:25:10 PM UTC.
Error: 
 Problem: cannot install the best candidate for the job
  - nothing provides hdf5 needed by postgis30_96-3.0.0alpha4-6.rhel8.x86_64
  - nothing provides xerces-c needed by postgis30_96-3.0.0alpha4-6.rhel8.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
Run Code Online (Sandbox Code Playgroud)

我寻找xerces-c,但没有返回任何内容:

#dnf list --available | grep xerces-c
Run Code Online (Sandbox Code Playgroud)

在哪里可以安装xerces-c ?


我看看 hdf5 是否可以安装(依赖项)

#dnf list --available | grep hdf5
Run Code Online (Sandbox Code Playgroud)

并且什么也没有返回。我如何满足这些依赖关系,以便安装 PostGIS?

我去了 hdf5 网站,下载了源代码,结果发现它是一个大混乱。构建/安装说明不起作用 - 代码与安装说明不同步。

我检查了 hdf5 网站并找到了另一组构建/安装说明,它们也与最新的代码库不同步。我不知道这个项目的进展如何,如果它是网络上的僵尸项目,看起来还活着,但没人在家。

如何将 hdf5 轻松地安装到我的系统和 xerces-c 上,以免现有的内容被搞乱?我更愿意使用 dnf 通过任何经过认可的 CentOS 8 软件包存储库来安装这些软件。


我无法在 PostGIS 票证跟踪系统上记录此问题。在那里记录票证需要 OSGEO ID,当我请求“口头禅”开始时,没有返回任何内容,没有响应,

OSGEO 又是一个僵尸项目,没人在家。https://www.osgeo.org/community/getting-started-osgeo/osgeo_userid/


仅当您自己在 CentOS 8 机器或虚拟机上实际完成此操作时,才请回复,虽然我很欣赏其他人的建议、指点或想象力,但它用错误信息、无效的解决方案污染了 r/postgis reddit,而且不仅浪费了我的时间死胡同,也是别人的时间。

其他人不可避免地会遇到同样的问题,并被这些善意但提供不正确或不完整信息的人误导。

Nic*_*nes 1

这些postgis30_96软件包适用于 Postgres 9.6。您需要postgis30_12Postgres 12。

这些软件包肯定在 repo 中,因此如果您dnf list没有看到它们,则可能是已知问题的一个实例,其中“yum/dnf 拒绝从 RHEL8 上的 PGDG 存储库查找/安装许多软件包”。

作为解决方法,Postgres Yum Howto推荐以下安装过程

dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
dnf -qy module disable postgresql
dnf install postgresql11-server postgresql11-contrib
Run Code Online (Sandbox Code Playgroud)