2

我正在尝试在 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

2)

#dnf --disablerepo AppStream install postgresql12
#dnf --disablerepo AppStream install postgresql12-server

我现在正在尝试安装 PostGIS。

#dnf list --available | grep postgis30

我看到 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

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

#dnf install postgis30_96

我收到这些错误:

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)

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

#dnf list --available | grep xerces-c

我在哪里可以安装xerces-c


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

#dnf list --available | grep hdf5

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

我去了 hdf5 网站,下载了源代码,这是一个巨大的 FAT MESS。构建/安装说明不起作用 - 代码与安装说明不同步。

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

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


我无法在 PostGIS 票务跟踪系统上记录此问题。在那里记录一张票需要一个 OSGEO ID,当我请求“咒语”开始时,什么都没有返回,没有响应,

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


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

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

4

7 回答 7

4

我遇到了同样的问题,终于找到了解决方案。我需要用于 postgresql10 的 postgis25,所以我输入了这个命令

dnf --enablerepo=PowerTools install postgis25_10

PowerTools 存储库包含来自 Redhat CodeReady Studio 的 codeready-developer 存储库的软件包。它包含许多有用的工具。

于 2019-11-18T23:01:32.160 回答
3

总结前面的答案,这些是在 CentOS-8 上安装 PostGIS-3 所需的命令:

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
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf --enablerepo=PowerTools install postgresql12-server postgresql12-contrib postgis30_12
于 2019-12-30T10:56:10.183 回答
3

无法为 RHEL 8 启用 PowerTools https://access.redhat.com/discussions/5417621

备注: PowerTools 是一个 CentOS 存储库。在 RHEL 8 上,我们有 CodeReady Builder 存储库!

我现在可以在 RHEL-8 上安装 PostGIS-3 for PostgreSQL-12

解决方案:

sudo subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
dnf install postgis30_12
于 2021-02-25T23:28:19.420 回答
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
于 2019-10-16T06:31:30.393 回答
1

许多答案很有帮助。总结一下我必须采取的步骤和https://people.planetpostgresql.org/devrim/index.php?/archives/107-Installing-PostGIS-3.1-and-PostgreSQL-13-on-的说明中的错误CentOS-8.html

  1. 正如 Marcelo 所提到的,对于 RHEL,使用代码就绪,而不是 powertools。
  2. 正如这个线程中提到的,不要混合包。在安装 postgres 之前运行dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm 以获取 pgdg 存储库。然后run dnf -qy module disable postgresql如果需要,然后安装 postgres 之类的sudo dnf install -y postgresql13-server
  3. 此处列出的安装 epel-repo 的命令可能不起作用。尝试sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
  4. 使用此命令获取最新 postgis 版本的名称。 sudo dnf list --available | grep postgis3 正如尼克所提到的,后两位数字是您的 postgres 版本。
  5. 安装 postgissudo dnf -y install postgis3x_xx 我再说一遍,后两位数是你的 postgres 版本。

因此,总而言之,为了在我的 rhel8 系统上安装 postgres 和 postgis,我按此顺序运行了这些命令。

sudo dnf -qy module disable postgresql
sudo dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf install -y postgresql13-server
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
sudo dnf -y install  postgis31_13
于 2021-11-05T18:39:27.330 回答
0

在 CentOS 容器中对我有什么帮助(作为根):

yum -y install dnf-plugins-core && yum config-manager --set-enabled powertools

安装dnf-plugins-core并启用powertools

于 2022-01-03T12:10:33.223 回答
0

Percona Postgresql 13 和 Postgis 3.0

https://www.percona.com/doc/percona-repo-config/index.html

dnf remove postgresql
    
sudo dnf install https://repo.percona.com/yum/percona-release-latest.noarch.rpm

sudo percona-release setup ppg-13

你可以参考这里:

https://www.percona.com/doc/postgresql/LATEST/installing.html#using-the-rpm-format

sudo dnf module disable postgresql

sudo dnf install percona-postgresql13-server

sudo dnf install percona-pg_repack13

sudo dnf install percona-pgaudit

sudo dnf install percona-pgbackrest

sudo dnf install percona-patroni

sudo dnf install percona-pg-stat-monitor13

sudo dnf install percona-postgresql13-contrib


/usr/pgsql-13/bin/postgresql-13-setup initdb


sudo systemctl start postgresql-13

地理信息系统

dnf -y config-manager --set-enabled PowerTools

dnf install -y postgis30_13 postgis30_13-client
于 2020-11-05T17:16:20.653 回答