【发布时间】:2013-05-14 16:40:39
【问题描述】:
当我使用 pg_upgrade 检查将 postgresql 9.0 beta2 升级到 postgresql 9.3 beta1。 出现以下错误:
uptest@db-172-16-3-33-> cat loadable_libraries.txt
Could not load library "$libdir/postgis-2.0"
ERROR: could not load library "/opt/pgsql9.3beta1/lib/postgis-2.0.so": /opt/pgsql9.3beta1/lib/postgis-2.0.so: undefined symbol: GETSTRUCT
详细流程:
- 安装 9.3
- initdb 9.3
- 安装so(pgfincore、pg_stat_statements、postgis,不要安装schema sql)
- 检查
我的LD_LIBRARY_PATH 是:
LD_LIBRARY_PATH=/opt/pgsql9.3beta1/lib:/opt/postgis-2.0.3-for9.3/lib:/opt/gdal-1.10.0/lib:/opt/geos-3.3.8/lib:/opt/json-c-git20130520/lib:/opt/proj-4.8.0/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib /opt/pgsql9.3beta1/bin/pg_upgrade -c -b /opt/pgsql9.0beta2/bin -B /opt/pgsql9.3beta1/bin -d /pgdata1099 -D /pgdata2099 -p 1099 -P 2099 -u postgres -v
然后是错误:
Checking for presence of required libraries fatal
Your installation references loadable libraries that are missing from the
new installation. You can add these libraries to the new installation,
or remove the functions using them from the old installation. A list of
problem libraries is in the file:
loadable_libraries.txt
Failure, exiting
已解决:
这是 postgresql 9.3 的 postgis 错误。 并解决了。
谢谢。
http://trac.osgeo.org/postgis/changeset/10321
vi /opt/soft_bak/postgis-2.0.3/postgis/geometry_estimate.c
//add
#if POSTGIS_PGSQL_VERSION >= 93
#include "access/htup_details.h"
#endif
然后是gmake、gmake install
现在执行 pg_upgrade。
【问题讨论】:
-
当计时器允许您发布您的编辑作为答案时。如果你在这里发表评论,我会投票赞成。
-
与其编辑你的问题和标题,最好自己回答你的问题并选择它作为正确答案。
标签: postgis