This appears to be more or less same as issue #3710. See earlier communiction,
copied below.
Just reinstalling postgis on a centos7 test server which previously ran
postgres 11 beta.
Installing : geos37-3.7.0-1.rhel7.1.x86_64
Installing : postgis24_11-2.4.6-3.rhel7.x86_64
Installing : postgis24_11-client-2.4.6-3.rhel7.x86_64
sentinel=# \i /usr/pgsql-11/share/contrib/postgis-2.4/postgis.sql
BEGIN
SET
DO
CREATE FUNCTION
psql:/usr/pgsql-11/share/contrib/postgis-2.4/postgis.sql:95: ERROR: could not load library
"/usr/pgsql-11/lib/postgis-2.4.so":/usr/pgsql-11/lib/postgis-2.4.so: undefined symbol: GEOSFrechetDistanceDensify
[pryzbyj@template0 ~]$ ldd /usr/pgsql-11/lib/postgis-2.4.so
libgeos_c.so.1 => /usr/geos36/lib64/libgeos_c.so.1 (0x00007f3e50e6e000)
libgeos-3.6.2.so => /usr/geos36/lib64/libgeos-3.6.2.so (0x00007f3e4f12e000)
Fixed with: rpm -e geos36-3.6.2-3.1.rhel7.x86_64
Should declare the RPM equivalent of debian's "Breaks" ??
On Wed, Dec 19, 2018 at 02:21:07PM -0600, Justin Pryzby wrote:
> On Mon, Dec 10, 2018 at 11:33:52AM +0000, redmine@postgresql.org wrote:
> > Issue #3710 has been updated by Devrim Gündüz.
> > Status changed from In Testing to Resolved
>
> On Mon, Dec 10, 2018 at 09:06:43AM -0600, Justin Pryzby wrote:
> > Does that work for upgrades from PG10 + postgis, which would probably have
> > older geos installed ?
>
> I went to the effort to check:
>
> [pryzbyj@dev ~]$ /usr/pgsql-10/bin/initdb -D ./pgsql.tmp
> [pryzbyj@dev ~]$ /usr/pgsql-10/bin/postmaster -D pgsql.tmp -c port=5678 -c unix_socket_directories=/tmp
> [pryzbyj@dev ~]$ psql --host /tmp --port 5678 postgres -c 'CREATE EXTENSION postgis'
> [pryzbyj@dev ~]$ time /usr/pgsql-11/bin/pg_upgrade -b /usr/pgsql-10/bin/ -B /usr/pgsql-11/bin/ -d ./pgsql.tmp -D
pgsql.tmp11
> [pryzbyj@dev ~]$ /usr/pgsql-10/bin/pg_ctl -D pgsql.tmp stop
> [pryzbyj@dev ~]$ time /usr/pgsql-11/bin/pg_upgrade -b /usr/pgsql-10/bin/ -B /usr/pgsql-11/bin/ -d ./pgsql.tmp -D
pgsql.tmp11
> ...
>
> Checking for presence of required libraries fatal
>
> [pryzbyj@dev ~]$ cat loadable_libraries.txt
> could not load library "$libdir/postgis-2.4": ERROR: incompatible library "/usr/pgsql-11/lib/postgis-2.4.so":
versionmismatch
> DETAIL: Server is version 11, library is version 10.
> could not load library "$libdir/rtpostgis-2.4": ERROR: could not access file "$libdir/rtpostgis-2.4": No such file
ordirectory
>
> I'd be interested to know if there's some reason why this would work on a fresh
> centos7 install (or one without historic packages installed), but I think it
> ought to work even on nonfresh installs, which are the ones where pg_upgrade is
> more likely to be used.
>
> Justin