Назад | Перейти на главную страницу

Как установить PostgreSQL 9.6 и plperl на Amazon Linux 2?

В официальных репозиториях устанавливаются пакеты RHEL6, которые работают в Amazon Linux 2 (клон RHEL7). Вы можете столкнуться с адом зависимостей, если захотите установить расширение plperl позже, поскольку для этого требуется Perl 5.10, который доступен только для RHEL6:

    ---> 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

Слегка измененная версия репозитория 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

L.E. Теперь 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.

Я бы не рекомендовал использовать PGDG с AL2. Не говоря уже о том, что теперь он отказывается устанавливать на AL2, потому что не может найти /etc/redhat-release. Вы все еще можете настроить файл репо для yum, но опять же, я не рекомендую это делать.

AL2 поставляется с amazon-linux-extras инструмент. https://aws.amazon.com/amazon-linux-2/faqs/#Amazon_Linux_Extras

Включены PostgreSQL 9.6 и 10, а также PL / Perl.

Возможно, вам придется проделать немного больше работы, чтобы настроить сервер, но у вас не должно возникнуть проблем с зависимостями, поскольку эти пакеты предоставляются командой Amazon Linux.