gpt4 book ai didi

postgresql - 尝试将 PostGIS 与 Postgres 一起使用 : "ERROR: could not open extension control file"

转载 作者:行者123 更新时间:2023-11-29 11:20:04 28 4
gpt4 key购买 nike

我刚刚使用最新版本的 KyngChaos libraries 在 OSX Mavericks 上安装了 Postgres 9.3.4 和 PostGIS 2.1。 .

但是,当我尝试在数据库上创建空间扩展时,我做不到,因为 Postgres 声称看不到扩展文件:

:~ anna$ psql -d land -c "CREATE EXTENSION postgis;"
ERROR: could not open extension control file
"/usr/local/Cellar/postgresql/9.3.4/share/postgresql/extension/postgis.control":
No such file or directory

看起来好像文件位于其他地方:

:~ anna$ mdfind postgis.control
/usr/local/pgsql-9.3/share/extension/postgis.control

我肯定使用的是预期版本的 Postgres,虽然我不知道这是否是 KyngChaos 库通常安装到的位置:

Annas-MacBook-Air:~ anna$ psql --version
psql (PostgreSQL) 9.3.4
Annas-MacBook-Air:~ anna$ which psql
/usr/local/pgsql-9.3/bin/psql

我一直非常小心,不要使用 Homebrew 等安装 Postgres,因为我知道它可能会导致同一系统的多个版本出现问题。

谁能告诉我为什么扩展文件不在预期的位置?


更新:

看起来我的系统上可能有多个版本的 Postgres,我用错了?

:~ anna$ mdfind -name "postgres" | grep -G "postgres$"
/usr/local/pgsql-9.3/bin/postgres
/usr/local/var/postgres
/usr/local/Cellar/postgresql/9.3.4/bin/postgres

我应该使用哪一个,如何将系统设置为默认使用这个?


进一步更新

这是 pg_config 的输出:

BINDIR = /usr/local/pgsql-9.3/bin
DOCDIR = /usr/local/pgsql-9.3/share/doc
INCLUDEDIR = /usr/local/pgsql-9.3/include
PKGINCLUDEDIR = /usr/local/pgsql-9.3/include
INCLUDEDIR-SERVER = /usr/local/pgsql-9.3/include/server
LIBDIR = /usr/local/pgsql-9.3/lib
PKGLIBDIR = /usr/local/pgsql-9.3/lib
LOCALEDIR =
MANDIR = /usr/local/pgsql-9.3/man
SHAREDIR = /usr/local/pgsql-9.3/share
SYSCONFDIR = /usr/local/pgsql-9.3/etc
PGXS = /usr/local/pgsql-9.3/lib/pgxs/src/makefiles/pgxs.mk
CONFIGURE = '--with-openssl' '--with-pam' '--with-krb5' '--with-gssapi' '--with-ldap' '--enable-thread-safety' '--with-bonjour' '--with-python' '--without-perl' '--enable-nls' '--with-libxml' 'CC=clang' 'CXX=clang++' 'CFLAGS=-Os -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -D_FILE_OFFSET_BITS=64' 'LD=clang' 'LDLFAGS=-arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk'
CC = gcc
CPPFLAGS = -I/usr/include/libxml2
CFLAGS = -Os -arch x86_64 -D_FILE_OFFSET_BITS=64 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv
CFLAGS_SL =
LDFLAGS = -arch x86_64 -Wl,-dead_strip_dylibs
LDFLAGS_SL =
LIBS = -lintl -liconv -lxml2 -lpam -lssl -lcrypto -lgssapi_krb5 -ledit -lz
VERSION = PostgreSQL 9.3.4

最佳答案

四处搜索,我找到了 this GIST其中用户 jordanmkoncz 给出了 OSX 的解决方案:

  1. 使用自制软件安装 PostGIS。
  2. 您需要小心,因为 brew 将安装最新可用版本的 PostGIS,它可能与您的特定版本的 PostgreSQL 不兼容。这是 a compatibility table为了您的方便。

要安装特定版本的 PostGIS(或任何其他公式)jordnmkoncz 建议使用此方法:Homebrew install specific version of formula?用于安装规范

我在 Linux Mint(类似 Ubuntu)上遇到了同样的问题,我按照这个 gis.stackexchange thread 解决了这个问题.

关于postgresql - 尝试将 PostGIS 与 Postgres 一起使用 : "ERROR: could not open extension control file",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23726528/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com