Dans ce monde fou où tout va vite, si vite, prenons un peu d’avance et voyons comment installer la toute dernière version de PostgreSQL 10. Cela nous permettra de vous montrer comment récupérer les derniers clichés du code source (« nightly-build »). Un rappel régulier ne faisant pas de mal, cela montera également à quel point les paquets fournis par la communauté vous simplifient la vie.
Cette version de PostgreSQL est tout juste sorti du four. Les développeurs utilisent d’ailleurs des gants spéciaux, rouges et verts, à carreaux. Elle n’est même pas en béta (prévue pour mi-2017). C’est une version pour ceux qui aiment les ennuis.
Donc pour nous. Allons-y !
Téléchargement
Le dépôt est ici : https://www.postgresql.org/ftp/snapshot/dev/
Prenez l’archive en tar.gz et, si vous avez un peu de temps, interrogez vous sur la présence systématique d’une archive en tar.bz2. Pourquoi ? Est-ce pour des systèmes ou gzip est absent ? Ça existe ? Nous ne savons pas mais nous comptons bien comprendre.
L’archive pèse 24M. Si vous avez un peu de temps (bis repetita placent), vous vous interrogerez sur l’énorme différence de volume entre une distribution complète de PostgreSQL (une centaine de méga-octets) et de distributions propriétaires (plusieurs Gigas). Qu’est-ce qu’ils peuvent bien mettre là-dedans ? Encore une question à creuser.
Transférez le fichier vers une machine cible (pour nous : une VM Centos 7.2). Et passons aux choses sérieuses.
Installation
Décompressez un peu (respirez profondément… voilà….) puis décompressez l’archive.
tar -xzf postgresql-snapshot.tar.gz
Puis entrez avec confiance dans le dossier :
cd postgresql-10devel
Vous venez de faire un pas dans le futur. Savourez le moment. Maintenant, les ennuis commencent.
Note : le fichier INSTALL contient de nombreuses informations pour toutes les systèmes. Par exemple, on lit « Solaris est une plate-forme parfaitement supportée ». C’est vrai. Pour le moteur. Mais pas pour la majorité des outils qui gravitent autours de PostgreSQL ni pour les sociétés qui vendent le support. Sachez-le.
Bon, qu’est-ce que ça raconte ? « make.. make install… bla bla bla … initdb… pg_ctl_start… », rien de nouveau.
./configure
Rien à signaler. Le verbiage habituel, comme sur ce blog… Nous avons gardé l’installation par défaut mais vous pouvez définir le « PREFIX » pour adapter à vos normes.
make
L’alchimie moderne. A lancer dès que votre chef passe voir ce que vous fabriquez. Très impressionnant.
Après un certain temps, ce message toujours salué d’un soulagement mêlé d’incrédulité :
All of the PostgreSQL successfully made. Ready to install
A partir d’ici, il faut passer en « root » ou travailler en « sudo ».
<br data-mce-bogus="1"> su<br data-mce-bogus="1"> make install<br data-mce-bogus="1"> mkdir /chemin/vers/votre/répertoire/de/données/<br data-mce-bogus="1"> chown -R user:group /chemin/vers/votre/répertoire/de/données/<br data-mce-bogus="1">
« /chemin/vers/votre/répertoire/de/données/ » étant le $PGDATA. Pensez à changer les permissions pour que votre compte puisse y écrire !
Retour dans votre identité d’utilisateur normal (« postgres », habituellement). Le plus difficile est fait : les binaires sont installés.
Reste l’initialisation du catalogue, le démarrage et le test. Changeons donc de section.
Démarrage
Avant le premier démarrage, il faut créer le catalogue (oui, comme dans les autres types de moteur. Il faut un catalogue. Même Cassandra en a un).
initdb -D $PGDATA
« success » : on s’y habituerait, n’est-ce pas ?
Premier démarrage :
pg_ctl start
Vous n’avez besoin de rien d’autre si la variable $PGDATA est exportée. Sinon, il faut préciser « -D /chemin/vers/les/données/ ».
« server started ». Champagne ! (Tous les prétextes sont bons !)
Visitons les lieux…
Test
Un « netstat » pour vérifier que le serveur écoute bien sur le 5432 et nous pouvons tenter notre première connexion :
$ psql -h localhost postgres psql (9.2.18, serveur 10devel) ATTENTION : psql version 9.2, version du serveur 10.0. Certaines fonctionnalités de psql pourraient ne pas fonctionner. Saisissez « help » pour l'aide. postgres=# create database test_db; CREATE DATABASE
Et voilà !
Comme vous pouvez le lire, il y a un avertissement sur les versions entre serveur et client. Certaines fonctionnalités ont été ajoutées en 10, notamment l’identification SCRAM (remplaçante du MD5) et quelques bricoles sur « psql » lui-même, comme la possibilité de passer en mode étendu une fois seulement avec « \gx ».
Nous avons publié précédemment un compte-rendu du PG Day 2017, Paris, où de nombreux changements sont listés. Vous connaissez le chemin.
Conclusion
Version 10 ou pas, l’installation depuis les sources se fait sans difficultés particulières. PostgreSQL n’a pas beaucoup de pré-requis, la documentation est claire.
Dans un prochain article, nous testerons la nouvelle réplication logique.
Rappelez-vous qu’il s’agit d’un code généré automatique depuis les derniers commits de l’équipe. Avec quel autre logiciel seriez-vous prêt à faire l’expérience sitôt le code disponible ? C’est un point de plus en faveur de la qualité du travail des membres du projet et, leur objectif étant de donner confiance aux utilisateurs, nous pouvons dire qu’ils s’en approchent à chaque nouvelle version.
Bravo à tous. Nous vous offrons un café (ou une bière) dès que nous en aurons l’occasion !
Des problèmes ? des questions ? Exprimez-vous ! Les commentaires sont ouverts. Coquilles et fautes de grammaires sont notre lot quotidien : signalez-les nous à m.capello@dbsqware.com