[postgis-users] PostgreSQL / PostGIS Issue - SQL state: 42883
Mark Cave-Ayland
mark.cave-ayland at ilande.co.uk
Thu Jan 3 11:47:41 PST 2008
On Thu, 2008-01-03 at 00:49 -0500, Darrell Sher wrote:
> Issue:
>
>
>
> When I run the lwpostgis.sql script it fails when creating the
> histogram2d type with the error:
>
> ERROR: function st_histogram2d_out(histogram2d) does not exist
>
> SQL state: 42883
>
>
>
> I can create the associated functions for the histogram2d type by
> hand, but I still get the same message when creating the type.
>
>
>
> I can however, successfully create the spheroid functions & types
> from the lwpostgis.sql script by hand.
>
>
>
> Any ideas where I should look for what is failing.
>
>
>
>
>
> Background:
>
>
>
> System: Red Hat ES v5 64-bit
>
>
>
> -bash-3.1$ uname -a
>
> Linux oc-db01.roost.local 2.6.18-53.el5 #1 SMP Wed Oct 10 16:34:19 EDT
> 2007 x86_64 x86_64 x86_64 GNU/Linux
>
>
>
> PostgreSQL:
>
>
>
> -bash-3.1$ pg_config
>
> BINDIR = /usr/bin
>
> DOCDIR = /usr/share/doc/pgsql
>
> INCLUDEDIR = /usr/include
>
> PKGINCLUDEDIR = /usr/include/pgsql
>
> INCLUDEDIR-SERVER = /usr/include/pgsql/server
>
> LIBDIR = /usr/lib64
>
> PKGLIBDIR = /usr/lib64/pgsql
>
> LOCALEDIR = /usr/share/locale
>
> MANDIR = /usr/share/man
>
> SHAREDIR = /usr/share/pgsql
>
> SYSCONFDIR = /etc/sysconfig/pgsql
>
> PGXS = /usr/lib64/pgsql/pgxs/src/makefiles/pgxs.mk
>
> CONFIGURE = '--build=x86_64-redhat-linux-gnu'
> '--host=x86_64-redhat-linux-gnu' '--target=x86_64-redhat-linux-gnu'
> '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr'
> '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc'
> '--datadir=/usr/share' '--includedir=/usr/include'
> '--libdir=/usr/lib64' '--libexecdir=/usr/libexec'
> '--localstatedir=/var' '--sharedstatedir=/usr/com'
> '--mandir=/usr/share/man' '--infodir=/usr/share/info'
> '--disable-rpath' '--with-perl' '--with-python' '--with-tcl'
> '--with-tclconfig=/usr/lib64' '--with-openssl' '--with-pam'
> '--with-krb5' '--with-includes=/usr/include'
> '--with-libraries=/usr/lib64' '--enable-nls' '--enable-thread-safety'
> '--sysconfdir=/etc/sysconfig/pgsql' '--datadir=/usr/share/pgsql'
> '--with-docdir=/usr/share/doc' 'CFLAGS=-O2 -g -pipe -Wall
> -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
> --param=ssp-buffer-size=4 -m64 -mtune=generic -I/usr/include/et'
> 'CPPFLAGS= -I/usr/include/et' 'build_alias=x86_64-redhat-linux-gnu'
> 'host_alias=x86_64-redhat-linux-gnu'
> 'target_alias=x86_64-redhat-linux-gnu'
>
> CC = gcc
>
> CPPFLAGS = -D_GNU_SOURCE -I/usr/include
>
> CFLAGS = -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
> -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic
> -I/usr/include/et -Wall -Wmissing-prototypes -Wpointer-arith -Winline
> -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing
>
> CFLAGS_SL = -fpic
>
> LDFLAGS = -L/usr/lib64
>
> LDFLAGS_SL =
>
> LIBS = -lpgport -lpam -lssl -lcrypto -lkrb5 -lz -lreadline -ltermcap
> -lcrypt -ldl -lm
>
> VERSION = PostgreSQL 8.2.5
>
>
>
> postgressql.conf:
>
>
>
> …
>
> dynamic_library_path = '$libdir:/usr/local/lib'
>
> #local_preload_libraries = ''
>
> …
>
>
>
> postgres .bash_profile:
>
>
>
> LD_LIBRARY_PATH=/usr/lib64/pgsql:/usr/local/lib:$LD_LIBRARY_PATH
>
> export LD_LIBRARY_PATH
>
>
>
> Geos & Proj4:
>
>
>
> [root at oc-db01 bin]# cd /usr/local/lib
>
> [root at oc-db01 lib]# ll
>
> total 49984
>
> -rwxr-xr-x 1 root root 13039412 Dec 27 11:56 libgeos-3.0.0rc4.so
>
> -rw-r--r-- 1 root root 34289648 Dec 27 11:56 libgeos.a
>
> -rw-r--r-- 1 root root 509840 Dec 27 11:56 libgeos_c.a
>
> -rwxr-xr-x 1 root root 832 Dec 27 11:56 libgeos_c.la
>
> lrwxrwxrwx 1 root root 18 Dec 27 11:56 libgeos_c.so ->
> libgeos_c.so.1.3.3
>
> lrwxrwxrwx 1 root root 18 Dec 27 11:56 libgeos_c.so.1 ->
> libgeos_c.so.1.3.3
>
> -rwxr-xr-x 1 root root 282107 Dec 27 11:56 libgeos_c.so.1.3.3
>
> -rwxr-xr-x 1 root root 809 Dec 27 11:56 libgeos.la
>
> lrwxrwxrwx 1 root root 19 Dec 27 11:56 libgeos.so ->
> libgeos-3.0.0rc4.so
>
> -rw-r--r-- 1 root root 2005348 Dec 27 12:00 libproj.a
>
> -rwxr-xr-x 1 root root 796 Dec 27 12:00 libproj.la
>
> lrwxrwxrwx 1 root root 16 Dec 27 12:00 libproj.so ->
> libproj.so.0.5.2
>
> lrwxrwxrwx 1 root root 16 Dec 27 12:00 libproj.so.0 ->
> libproj.so.0.5.2
>
> -rwxr-xr-x 1 root root 889693 Dec 27 12:00 libproj.so.0.5.2
>
>
>
> PostGIS:
>
>
>
> [root at oc-db01 pgsql]# ldd liblwgeom.so.1.3
>
> libgeos_c.so.1 => /usr/local/lib/libgeos_c.so.1
> (0x00002aaaaad0e000)
>
> libproj.so.0 => /usr/local/lib/libproj.so.0
> (0x00002aaaaaf1b000)
>
> libc.so.6 => /lib64/libc.so.6 (0x00002aaaab179000)
>
> libgeos-3.0.0rc4.so => /usr/local/lib/libgeos-3.0.0rc4.so
> (0x00002aaaab4ca000)
>
> libstdc++.so.6 => /usr/lib64/libstdc++.so.6
> (0x00002aaaab80b000)
>
> libm.so.6 => /lib64/libm.so.6 (0x00002aaaabb0b000)
>
> libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002aaaabd8f000)
>
> /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
>
> [
>
>
>
> The PostGIS make config is successful.
>
>
>
>
>
>
>
> Thank you,
>
> Darrell
Hi Darrell,
The liblwgeom.so file is a *PostgreSQL* shared library rather than a
system shared library, and so should be placed under /usr/lib64/pgsql if
it is not already (make install on PostGIS will have done this for you).
Also your "dynamic_library_path" setting is wrong - you need to revert
it back just to plain "$libdir" since PostgreSQL will automatically link
in the other libraries as needed. Same goes for LD_LIBRARY_PATH: you
need to remove the /usr/lib64/pgsql from the postgres user's environment
as PostgreSQL will load these libraries automatically. In fact, the
easiest option would be to drop an entry for /usr/local/lib
into /etc/ld.so.conf as root and run ldconfig - Google is your friend
here - and then you won't need to make changes to LD_LIBRARY_PATH.
Finally, another thing is did you remember to restart PostgreSQL once
you made the changes to .bash_profile? Changes to LD_LIBRARY_PATH won't
be picked up until PostgreSQL is restarted under the postgres user.
HTH,
Mark.
--
ILande - Open Source Consultancy
http://www.ilande.co.uk
More information about the postgis-users
mailing list