使用官方存储库,RHEL6 软件包可以安装,这些软件包恰好可以在 Amazon Linux 2(RHEL7 克隆)上运行。如果您以后想安装 plperl 扩展,可能会遇到依赖地狱,因为它需要仅适用于 RHEL6 的 Perl 5.10:
---> Package postgresql96-plperl.x86_64 0:9.6.11-1PGDG.rhel6 will be installed
--> Processing Dependency: perl(:MODULE_COMPAT_5.10.1) for package: postgresql96-plperl-9.6.11-1PGDG.rhel6.x86_64
--> Finished Dependency Resolution
Error: Package: postgresql96-plperl-9.6.11-1PGDG.rhel6.x86_64 (pgdg96)
Requires: perl(:MODULE_COMPAT_5.10.1)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
答案1
我不建议将 PGDG 与 AL2 一起使用。更不用说,它现在拒绝在 AL2 上安装,因为它找不到/etc/redhat-release
。您仍然可以为 yum 设置 repo 文件,但同样,我不推荐这样做。
AL2 附带一个amazon-linux-extras
工具。https://aws.amazon.com/amazon-linux-2/faqs/#Amazon_Linux_Extras
包括 PostgreSQL 9.6 和 10,以及 PL/Perl。
您可能需要做更多的工作来完成服务器设置,但您不应该有依赖问题,因为这些软件包是由 Amazon Linux 团队提供的。
答案2
可以使用稍微修改过的 Amazon Linux YUM 存储库版本来安装正确 (el7) 版本的 postgresql-server,从而安装 plperl:
[pgdg96]
name=PostgreSQL 9.6 - Amazon Linux 2 - $basearch
baseurl=https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-96
[pgdg96-source]
name=PostgreSQL 9.6 - Amazon Linux 2 - $basearch - Source
failovermethod=priority
baseurl=https://download.postgresql.org/pub/repos/yum/srpms/9.6/redhat/rhel-7-$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-96
[pgdg96-updates-testing]
name=PostgreSQL 9.6 - Amazon Linux 2 - $basearch
baseurl=https://download.postgresql.org/pub/repos/yum/testing/9.6/redhat/rhel-7-$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-96
[pgdg96-source-updates-testing]
name=PostgreSQL 9.6 - Amazon Linux 2 - $basearch - Source
failovermethod=priority
baseurl=https://download.postgresql.org/pub/repos/yum/srpms/testing/9.6/redhat/rhel-7-$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-96
已安装的软件包:
$ rpm -qa | grep postgresql96
postgresql96-contrib-9.6.12-1PGDG.rhel7.x86_64
postgresql96-plperl-9.6.12-1PGDG.rhel7.x86_64
postgresql96-9.6.12-1PGDG.rhel7.x86_64
postgresql96-server-9.6.12-1PGDG.rhel7.x86_64
postgresql96-libs-9.6.12-1PGDG.rhel7.x86_64
LE 现在,Postgres 9.6 可在 amazon-linux-extras 包中使用:
# amazon-linux-extras | grep postgres
5 postgresql9.6 available [ =9.6.6 =9.6.8 ]
6 postgresql10 available [ =10 ]
要启用存储库,您可以执行amazon-linux-extras enable postgresql9.6
。