如何在 Amazon Linux 2 上安装 PostgreSQL 9.6 和 plperl?

如何在 Amazon Linux 2 上安装 PostgreSQL 9.6 和 plperl?

使用官方存储库,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

相关内容