將 Fedora Server 升級到 37,Postgres 的升級不起作用:錯誤:無法存取檔案“$libdir/postgis-3”

將 Fedora Server 升級到 37,Postgres 的升級不起作用:錯誤:無法存取檔案“$libdir/postgis-3”

在其他一切都顯示工作正常後(耶!),Postgres拒絕啟動(不要被這個名字所困擾 - Postgres 被打包為PostgreSQL讚揚 Paul Aoki 將查詢語言處理器轉換為在第一個打包中QUEL使用)。SQLPostgres

啟動失敗並不意外,儘管軟體包可能已經預料到了升級的情況,因為所有升級的安裝可能都需要這樣做,並為我們運行適當的升級腳本;該腳本可以這樣運作:

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

不幸的是,它失敗了。

我追蹤了錯誤麵包屑的踪跡 -Postgres用戶主目錄中的一個日誌文件,由所述命令吐出的中間日誌指向stdout,指向Postgis安裝所使用的 的問題。

最相關的錯誤訊息說:

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

不幸的是,它沒有說$libdir應該在哪裡,同樣不幸的是,我也不知道它在哪裡!我還沒有找到任何包含該名稱的目錄postgis

我認為Postgis沒有升級或可能沒有安裝,但透過簡單檢查已安裝的軟體包證明這是不正確的:它被稱為postgis-3.2.2-1.fc37.x86_64

由於錯誤訊息抱怨沒有找到 3 版的一部分postgis-3,但postgis安裝了版本 3,這讓我感到驚訝。

我還沒有修復。想法?Postgres對於也使用 ! 的用戶來說,這一定是個常見問題Postgis

答案1

後地理資訊系統是作為套件安裝的擴充功能。您必須安裝適合您的 postgresql 主版本和 postgis 擴充版本的軟體包。例如;postgis32_15或者postgis31_14

$libdir或任何其他預先定義的(主要是編譯附帶的)配置可以透過以下方式學習pg_config客戶端應用程式。基本可以學會庫目錄透過運行下面的命令。

pg_config --pkglibdir

如果你找不到pg_config那麼它最有可能在哪裡sql命令是( $bindir)。

答案2

postgis-upgrade在 Fedora 37 上,如果您尚未安裝軟體包,您會在資料庫升級期間收到此錯誤訊息。

因此,支援 postgis 的資料庫的完整升級過程如下:

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

一般來說,最好檢查升級日誌(和標準/var/lib/pgsql/data/log/postgresql*.log),以防出現一些特定於您的特定資料庫的額外提示。

相關內容