Joe*_*ska 12 postgresql postgis pg-dump
简而言之,我的问题是"为什么$ libdir不能在我的PSQL安装上运行."
CREATE FUNCTION st_box2d_in(cstring) RETURNS box2d
AS '$libdir/liblwgeom', 'BOX2DFLOAT4_in'
LANGUAGE c IMMUTABLE STRICT;
Run Code Online (Sandbox Code Playgroud)
产生错误
could not access file "$libdir/liblwgeom": No such file or directory
Run Code Online (Sandbox Code Playgroud)
而
CREATE FUNCTION st_box2d_in(cstring) RETURNS box2d
AS '/usr/local/pgsql/lib/liblwgeom', 'BOX2DFLOAT4_in'
LANGUAGE c IMMUTABLE STRICT;
Run Code Online (Sandbox Code Playgroud)
工作正常.
的输出
% pg_config --pkglibdir
/usr/local/pgsql/lib
Run Code Online (Sandbox Code Playgroud)
似乎是正确的.
小智 6
我也在努力解决这个错误.我通过手动将PostGIS lib链接到liblwgeom文件解决了这个问题,如下所示:
ln -s /usr/lib/postgis/1.5.1/postgres/8.4/lib/postgis-1.5.so
/usr/lib/postgresql/8.4/lib/liblwgeom
Run Code Online (Sandbox Code Playgroud)
我不知道为什么PostGIS会将自己安装在'错误'目录中,或者为什么PostgreSQL会查找一个名为文件的文件,liblwgeom当它看起来与PostGIS调用的文件相同时postgis-1.5.so
我所知道的是,这似乎解决了我的问题.
原来的回复有误,删掉了
现在我已经查找了 postgresql 代码,我不得不承认这个字符串应该从 2001 年开始扩展;-)。但扩展非常有限。它仅扩展$libdir后跟目录分隔符。尽管如此,您的输出表明该字符串未扩展,因为此处报告的字符串是实际用于加载库的字符串。
这意味着替换失败。仔细观察,我可以发现只有目标文件确实存在时扩展才会成功。假设你的目录分隔符是/and DLSUFFIXis.so并且文件/usr/local/pgsql/lib/liblwgeom.so确实存在,我不知道为什么它会失败;-)
| 归档时间: |
|
| 查看次数: |
15709 次 |
| 最近记录: |