postgis-2.0.so:未定义的符号:GETSTRUCT

时间:2013-05-20 06:56:48

标签: postgis

当我使用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. initdb 9.3
  3. install so(pgfincore,pg_stat_statements,postgis,不要安装schema sql)
  4. 检查
  5. 我的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。

1 个答案:

答案 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

然后gmakegmake install

现在已经通过了pg_upgrade。