postgis-2.0.so: undefined symbol: GETSTRUCT

2019-03-25 14:19发布

问题:

when i use pg_upgrade check upgrade postgresql 9.0 beta2 to postgresql 9.3 beta1. error occure below :

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

detailed procedure :

  1. install 9.3
  2. initdb 9.3
  3. install so (pgfincore, pg_stat_statements, postgis, don't install schema sql)
  4. check

My LD_LIBRARY_PATH is:

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

AND then the error :

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

RESOLVED:

this is a postgis bug for postgresql 9.3. and resolved it.

thanks.

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

and then gmake, gmake install

do pg_upgrade passed now.

回答1:

This is quoted from question. (OP has edited the question)

Quote:

this is a postgis bug for postgresql 9.3. and resolved it.

thanks.

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

and then gmake, gmake install

do pg_upgrade passed now.



标签: postgis