10

当我使用 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

详细程序:

  1. 安装 9.3
  2. 初始化数据库 9.3
  3. 这样安装(pgfincore,pg_stat_statements,postgis,不要安装模式 sql)
  4. 查看

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

然后gmakegmake install

pg_upgrade 现在是否通过了。

4

1 回答 1

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

然后gmakegmake install

pg_upgrade 现在是否通过了。

于 2014-09-10T18:38:03.923 回答