我刚刚使用最新版本的
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提供了解决方案:
>使用自制软件安装PostGIS.
>您需要小心,因为Brew将安装最新版本的PostGIS,这可能与您的特定版本的Postgresql不兼容.这是a compatibility table为了您的方便.
要安装特定版本的PostGIS(或任何其他公式),jordnmkoncz建议使用此方法:Homebrew install specific version of formula?用于安装规范
我和Linux Mint(Ubuntu之类)有同样的问题,我在gis.stackexchange thread之后解决了这个问题.