Beim Upgrade von Fedora Server auf 37 hat das Upgrade von Postgres nicht funktioniert: FEHLER: Auf die Datei „$libdir/postgis-3“ konnte nicht zugegriffen werden

Beim Upgrade von Fedora Server auf 37 hat das Upgrade von Postgres nicht funktioniert: FEHLER: Auf die Datei „$libdir/postgis-3“ konnte nicht zugegriffen werden

Nachdem sich gezeigt hatte, dass alles andere einwandfrei funktionierte (JUHU!), Postgreswurde der Start verweigert (lassen Sie sich nicht vom Namen irritieren – Postgres wurde bereits in der ersten Paketversion im Jahr 1995 als PostgreSQLLoblied auf Paul Aokis Konvertierung des QUELAbfragesprachenprozessors verpackt, um SQLdiese Funktion zu verwenden – alles außer der Verpackung/Marke verwendet den Namen Postgres).

Dieser Startfehler kam nicht unerwartet, obwohl das Paket dies für Upgrades HÄTTE vorhersehen KÖNNEN, da dies wahrscheinlich bei allen aktualisierten Installationen erforderlich ist und das entsprechende Upgrade-Skript für uns ausgeführt werden muss. Dieses Skript kann folgendermaßen ausgeführt werden:

postgresql-setup --upgrade --upgrade-from postgresql

Leider ist es fehlgeschlagen.

Ich bin der Fehlerspur gefolgt – eine Protokolldatei im PostgresStammverzeichnis des Benutzers, auf die ein Zwischenprotokoll verweist, das stdoutvon diesem Befehl ausgegeben wird, wies auf ein Problem mit hin Postgis, das von der Installation verwendet wird.

Die relevanteste Fehlermeldung lautete:

ERROR:  could not access file "$libdir/postgis-3"

Leider stand da nicht, wo $libdires sein soll und leider weiß ich auch nicht, wo es ist! Ich habe bisher kein Verzeichnis mit dem Namen gefunden postgis.

Ich nahm an, Postgisdass es nicht aktualisiert oder vielleicht nicht installiert wurde, aber das erwies sich bei einer einfachen Überprüfung der installierten Pakete als falsch: Es heißtpostgis-3.2.2-1.fc37.x86_64

Dass in der Fehlermeldung das Nichtfinden eines Teils bemängelt wurde postgis-3und trotzdem eine postgisVersion 3 installiert ist, hat mich überrascht.

Ich habe noch keine Lösung. Was meint ihr? Das MUSS ein häufiges Problem bei PostgresBenutzern sein, die auch verwenden Postgis!

Antwort1

PostGISist eine Erweiterung, die als Paket installiert wird. Sie müssen das Paket installieren, das sowohl zu Ihrer PostgreSQL-Hauptversion als auch zu Ihrer Postgis-Erweiterungsversion passt. Wie zum Beispiel; postgis32_15oderpostgis31_14

$libdiroder jede andere vordefinierte (meist mit der Kompilierung gelieferte) Konfiguration kann gelernt werden mitpg_configClient-Anwendung. Sie können grundsätzlich lernenlibdirindem Sie den folgenden Befehl ausführen.

pg_config --pkglibdir

Wenn Sie nicht findenpg_configdann ist es höchstwahrscheinlich dort, wopsqlBefehl ist ( $bindir) .

Antwort2

Unter Fedora 37 erhalten Sie diese Fehlermeldung während des Datenbank-Upgrades, wenn Sie das postgis-upgradePaket nicht installiert haben.

Das vollständige Upgrade-Verfahren für PostGIS-fähige Datenbanken sieht also ungefähr so ​​aus:

systemctl start postgresql.service
# => start fails fails and some hints are logged
dnf install postgresql-upgrade postgis-upgrade
postgresql-setup --upgrade
systemctl start postgresql.service
sudo -u postgres psql -f /var/lib/pgsql/update_extensions.sql
sudo -u postgres reindexdb yourdb

Generell ist es eine gute Idee, die Upgrade-Protokolle (und die Standard-Protokolle /var/lib/pgsql/data/log/postgresql*.log) zu überprüfen, ob es zusätzliche Hinweise gibt, die speziell für Ihre konkrete Datenbank gelten.

verwandte Informationen