当我使用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
详细程序:
我的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。
答案 0 :(得分:4)
引用了这个问题。 (OP编辑了这个问题)
这是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。