簡體   English   中英

創建 Postgis 擴展:“錯誤:無法打開擴展控制文件”

[英]Creating Postgis extension: “ERROR: could not open extension control file”

運行create extension postgis;時出現以下錯誤create extension postgis;

ERROR: could not open extension control file "/Library/PostgreSQL/9.6/share/postgresql/extension/postgis.control": No such file or directory

我正在使用在 OS X El Capitan 上使用 Homebrew 安裝的 Postgres 9.6.3 和 PostGIS 2.3.2。

mdfind -name postgis.control顯示:

/usr/local/Cellar/postgis/2.3.2/share/postgresql/extension/postgis.control

brew info postgis顯示:

PostGIS extension modules installed to:
/usr/local/share/postgresql/extension

當我啟動 Postgres 控制台時,我看到:

psql (9.6.3, server 9.6.1)

我讀了一個類似的問題, PostGIS Homebrew 安裝引用舊路徑? ,並嘗試使用頂級答案中給出的命令重新加載 postgresql,但我仍然看到psql (9.6.3, server 9.6.1) 另外,我相信我的問題是不同的,因為它在/Library而不是/usr/local/Cellar尋找擴展控制文件。

任何幫助將不勝感激。

當您嘗試安裝 postgis 時,它會安裝最新版本的 postgresql 作為依賴項。 因此,如果您安裝了 postgres@V (其中 V 是用戶所需的版本)

brew install postgresql@V

稍后你運行這個命令

brew install postgis

它將安裝 postgres10.1 或任何最新版本。 所以在那之后如果運行

create extension postgis;

在 postgresql@V 中,它會嘗試檢查它的擴展目錄,但它不會在擴展目錄中找到 postgis.control,因為這個 postgis 安裝在與它一起安裝的 postgresql 版本的擴展文件夾中。

要解決此問題,您必須從給定的 postgis 安裝創建一個符號鏈接到所需的 postgresql@V

postgresql@9.6 的這個例子

ln -s  /usr/local/share/postgresql/extension/postgis* /usr/local/Cellar/postgresql@9.6/9.6.6/share/postgresql@9.6/extension/
ln -s /usr/local/lib/postgresql/postgis-2.3.so /usr/local/Cellar/postgresql@9.6/9.6.6/lib/postgis-2.3
ln -s /usr/local/lib/postgresql/rtpostgis-2.3.so /usr/local/Cellar/postgresql@9.6/9.6.6/lib/

在運行這些命令之前,請檢查系統中的 postgresql 版本和文件路徑

感謝這個要點的幫助。

我有一個類似的問題, 這里有完整的細節。 當您的 Postgres 控制台中提到服務器時,這意味着您正在引用較舊的代碼庫。 停止該服務器並使用以下命令啟動正確的服務器。

$ brew services list

這將為您提供正在運行的數據庫服務器列表。

$ brew services stop postgresql@<older-version>
$ brew services start postgresql

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM