J'ai procédé en ligne de commande:
$ sudo flatpak install flathub org.libreoffice.LibreOffice
Ceci suppose que certaines manipulations ont dèjà été effectuées, comme l'installation de flatpak, du dépôt flathub....
Je voulais cette dernière version à cause d'un bug dans base: je vais donc d'abord essayer d'établir une connexion à une base de données postgresql nommée bdtest.
Je lance libreoffice base et passe par les étapes suivantes:
Il reste à tester la connexion:
Aie: le serveur accepte les connexions sur le socket /var/run/postgresql/.s.PGSQL.5432.
Je modifie l'entrée unix_socket_directories du fichier postgresql.conf:
unix_socket_directories = '/var/run/postgresql, /tmp'
Après un redémarrage du serveur, en exécutant la commande
$ sudo netstat -nlp | grep 'PGSQL'
nous constatons l'existence de deux sockets:
N'oublions pas qu'il sagit d'une version flatpak de libreoffice: certains droits sont regis par le bac à sable dans lequel libreoffice tourne. Une documentation au sujet de ces droits existe ici.
On y trouve les infos:
These directories are blacklisted: /lib, /lib32, /lib64, /bin, /sbin, /usr, /boot, /root, /tmp, /etc, /app, /run, /proc, /sys, /dev, /var
These directories are mounted under /var/run/host: /etc, /usr
Je donne accès à /tmp:
$ sudo flatpak override org.libreoffice.LibreOffice --filesystem=/tmp
Cette fois ça fonctionne: je peux me connecter.
Si je ne veux pas toucher au bac à sable, j'ajoute host=localhost après le nom de la base de données:
ce qui oblige à une connexion via la boucle locale, donc sans utilisation de socket et sans accès à /tmp.
Dans pg_hba.conf, je remplace dans la ligne adéquate md5 par ident (car je ne veux pas entrer de mot de passe):
# "local" is for Unix domain socket connections only
local all all peer map=map01
# IPv4 local connections:
host all all 127.0.0.1/32 ident map=map01
Redémarrage de postgresql et puis:
Caramba: encore raté.
En fait il faut installer oidentd:
$ sudo apt install oidentd
Je vais maintenant essayer une connexion java. Avant tout, il faut agir au niveau des options java de libreoffice: passer par 'Chemins de classe', puis ajouter une archive: /var/run/host/usr/share/java/postgresql.jar:
(On se rappelle que dans le bac à sable /usr est monté dans /var/run/host/)
Ensuite:
Aie: problèmes d'authentification avec ident:
Il faut ajouter
-Djava.net.preferIPv4Stack=true
aux paramètres de démarrage java:
Et ça fonctionne.
On peut aussi remplacer ident par md5.
Attention le mot de passe à fournir est un mot de passe postgresql, qui peut par exemple être fixé dans un terminal psql: