Paris, le 18 avril 2019

Depuis le 15 avril 2019, il n’y a désormais plus qu’1 seul RPM de création des dépôts YUM par distribution. Ce package contient maintenant les informations des dépôts pour toutes les versions majeures de PostgreSQL disponibles et supportées.

Ce changement, annoncé par Devrim sur la mailing list pgsql-pkg-yum, a quelques impacts.


Annonce

L’annonce originale de Devrim se trouve ici.

  • Au lieu d’un RPM de dépôts par version majeure de PostgreSQL, nous avons désormais un seul RPM contenant les informations des dépôts YUM pour l’ensemble des versions supportées de PostgreSQL.

  • La version de ce RPM de dépôts a été passée à 42. Espérons que cela mettra fin aux questions du genre “Le RPM de dépôts est en version 10-4, où puis-je trouver le 10-7 afin de pouvoir installer PostgreSQL 10.7 ?”.

  • Le suffixe “latest” a d’ailleurs été ajouté à tous les RPMs de dépôts afin de toujours pointer sur la dernière version disponible.


Installation

Voyons par exemple l’impact de ces changements sur CentOS 7.

Comme d’habitude, aller sur https://www.postgresql.org/download/linux/redhat/ et choisir la version (11), la plateforme (CentOS 7) et l’architecture (x86_64) qu’on souhaite installer.

Aujourd’hui, on obtient encore le lien vers le paquet pgdg-centos11-11-2.

L’installer :

# yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm
Loaded plugins: fastestmirror
pgdg-centos11-11-2.noarch.rpm
Examining /var/tmp/yum-root-5eSWGp/pgdg-centos11-11-2.noarch.rpm: pgdg-redhat-repo-42.0-4.noarch
Marking /var/tmp/yum-root-5eSWGp/pgdg-centos11-11-2.noarch.rpm to be installed

Resolving Dependencies
--> Running transaction check
---> Package pgdg-redhat-repo.noarch 0:42.0-4 will be installed
--> Finished Dependency Resolution

Dependencies Resolved
========================================================================================================
 Package                   Arch            Version            Repository                           Size
========================================================================================================
Installing:
 pgdg-redhat-repo          noarch          42.0-4             /pgdg-centos11-11-2.noarch          6.8 k

Transaction Summary
========================================================================================================
Install  1 Package

Total size: 6.8 k
Installed size: 6.8 k

En réalité, le nouveau paquet pgdg-redhat-repo va être installé…

Le fichier yum .repo contiendra désormais les URLs des dépôts pour toutes les versions supportées de PostgreSQL :

# cat /etc/yum.repos.d/pgdg-redhat-all.repo |grep "\["
[pgdg12]
[pgdg11]
[pgdg10]
[pgdg96]
[pgdg95]
[pgdg94]
...

Les dépôts des versions 9.4 à 11 sont d’ailleurs activés par défaut.

Les paquets PostgreSQL sont donc facilement atteignables et il est désormais facile d’installer deux versions différentes en une seule fois :

# yum install postgresql11-server postgresql10-server
...

Dependencies Resolved
========================================================================================================
 Package                        Arch              Version                       Repository         Size
========================================================================================================
Installing:
 postgresql10-server            x86_64            10.7-2PGDG.rhel7              pgdg10            4.5 M
 postgresql11-server            x86_64            11.2-2PGDG.rhel7              pgdg11            4.7 M
Installing for dependencies:
 libicu                         x86_64            50.1.2-17.el7                 base              6.9 M
 postgresql10                   x86_64            10.7-2PGDG.rhel7              pgdg10            1.6 M
 postgresql10-libs              x86_64            10.7-2PGDG.rhel7              pgdg10            355 k
 postgresql11                   x86_64            11.2-2PGDG.rhel7              pgdg11            1.6 M
 postgresql11-libs              x86_64            11.2-2PGDG.rhel7              pgdg11            360 k

Transaction Summary
========================================================================================================
Install  2 Packages (+5 Dependent packages)

Total download size: 20 M
Installed size: 80 M

Pour simplifier les articles de blogs ou les scripts automatisés, on peut simplement utiliser le lien vers le RPM de dépôts le plus récent, à savoir :

https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Mises à jour

Ce changement impacte également les installations existantes en cas de mise à jour.

Sur, par exemple, une version 11 précédemment installée :

# cat /etc/yum.repos.d/pgdg-11-centos.repo |grep "\["
[pgdg11]
...

La mise à jour va remplacer l’ancien paquet pgdg-centos11 par le nouveau et créer le nouveau fichier .repo :

# yum update pgdg-centos11
...
Resolving Dependencies
--> Running transaction check
---> Package pgdg-centos11.noarch 0:11-2 will be obsoleted
---> Package pgdg-redhat-repo.noarch 0:42.0-4 will be obsoleting
--> Finished Dependency Resolution

Dependencies Resolved
========================================================================================================
 Package                        Arch                 Version                 Repository            Size
========================================================================================================
Installing:
 pgdg-redhat-repo               noarch               42.0-4                  pgdg11               5.6 k
     replacing  pgdg-centos11.noarch 11-2

Transaction Summary
========================================================================================================
Install  1 Package

Total download size: 5.6 k

Versions EOL

Alors que les dépôts YUM des versions EOL (qui ne sont plus supportées) existent encore, les RPMs de dépôts habituellement disponibles sur https://yum.postgresql.org/repopackages.php#pg93, ne le sont plus : 404 - Not Found.

Il est toutefois encore possible d’ajouter manuellement ces dépôts en cas de besoin :

# cat /etc/yum.repos.d/pgdg-93-centos.repo 
[pgdg93]
name=PostgreSQL 9.3 $releasever - $basearch
baseurl=https://download.postgresql.org/pub/repos/yum/9.3/redhat/rhel-$releasever-$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-93

[pgdg93-source]
name=PostgreSQL 9.3 $releasever - $basearch - Source
failovermethod=priority
baseurl=https://download.postgresql.org/pub/repos/yum/srpms/9.3/redhat/rhel-$releasever-$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-93

Bien sûr, puisqu’il s’agit de versions qui ne sont plus supportées, vous ne devriez plus avoir à les utiliser…


DALIBO

DALIBO est le spécialiste français de PostgreSQL. Nous proposons du support, de la formation et du conseil depuis 2005.