Thread: What library uses postmaster when lib postgres files are installed not on library path
What library uses postmaster when lib postgres files are installed not on library path
From
Adam Radłowski
Date:
I'm testing 8.1.3 and 8.1.6 of FC3 2.6.12 . I have installed (compiled from source) two copies of PostgreSQL: 8.1.3 - typically in /usr/local/pgsql and I have configured path to these libs (in ld.so.conf): /usr/local/pgsql/lib 8.1.6 - not typically in /usr/local/pgsql816 (I edited before installing with "make install" src/Makefile.global and I changed "prefix" for install after "configure" and "make") I never use this two versions of postmaster parallel, so I use for them this same database cluster. What libraries uses postmaster 8.1.6 in this situation ? Their own libs or taken from 8.1.3 ? Best regards Adam
The Libraries used are solved by the liker. Try ldd <exec file> to show the paths of the library that <exec file> needs. You can say to the linker where it can find your libraries (man ld). Example 1: default paths from a default paths PostgreSQL installation. $ ldd /usr/bin/psql libpq.so.3 => /usr/lib/libpq.so.3 (0x40029000) libpam.so.0 => /lib/libpam.so.0 (0x40044000) libssl.so.2 => /lib/libssl.so.2 (0x4004c000) libcrypto.so.2 => /lib/libcrypto.so.2 (0x40079000) libkrb5.so.3 => /usr/kerberos/lib/libkrb5.so.3 (0x4013c000) libcom_err.so.3 => /usr/kerberos/lib/libcom_err.so.3 (0x40194000) libz.so.1 => /usr/lib/libz.so.1 (0x40198000) libreadline.so.4 => /usr/lib/libreadline.so.4 (0x401a6000) libtermcap.so.2 => /lib/libtermcap.so.2 (0x401cc000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x401d0000) libresolv.so.2 => /lib/libresolv.so.2 (0x401fd000) libnsl.so.1 => /lib/libnsl.so.1 (0x4020f000) libdl.so.2 => /lib/libdl.so.2 (0x40225000) libm.so.6 => /lib/i686/libm.so.6 (0x4022a000) libc.so.6 => /lib/i686/libc.so.6 (0x4024d000) libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40388000) libk5crypto.so.3 => /usr/kerberos/lib/libk5crypto.so.3 (0x4039d000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) Example 2: modified paths from a not default paths PostgreSQL installation. Sitefdevel:~$ ldd $HOME/opt/postgres-8.1.5/bin/psql $ echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" LD_LIBRARY_PATH=/home/cvsitef/opt/postgres-8.1.5/lib libpq.so.4 => /home/cvsitef/opt/postgres-8.1.5/lib/libpq.so.4 (0x40018000) libz.so.1 => /usr/lib/libz.so.1 (0x40042000) libreadline.so.4 => /usr/lib/libreadline.so.4 (0x40050000) libtermcap.so.2 => /lib/libtermcap.so.2 (0x40076000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x4007a000) libresolv.so.2 => /lib/libresolv.so.2 (0x400a7000) libnsl.so.1 => /lib/libnsl.so.1 (0x400b9000) libdl.so.2 => /lib/libdl.so.2 (0x400d0000) libm.so.6 => /lib/i686/libm.so.6 (0x400d4000) libc.so.6 => /lib/i686/libc.so.6 (0x400f7000) libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40232000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) Best regards Jorge Serván. Adam Radłowski wrote: > I'm testing 8.1.3 and 8.1.6 of FC3 2.6.12 . > I have installed (compiled from source) two copies of PostgreSQL: > 8.1.3 - typically in /usr/local/pgsql and I have configured path to > these libs (in ld.so.conf): /usr/local/pgsql/lib > 8.1.6 - not typically in /usr/local/pgsql816 (I edited before > installing with "make install" src/Makefile.global and I changed > "prefix" for install after "configure" and "make") > I never use this two versions of postmaster parallel, so I use for > them this same database cluster. > > What libraries uses postmaster 8.1.6 in this situation ? Their own > libs or taken from 8.1.3 ? > > Best regards > Adam > > ---------------------------(end of broadcast)--------------------------- > TIP 7: You can help support the PostgreSQL project by donating at > > http://www.postgresql.org/about/donate > >
I checked the libraries used by pg_ctl and postmaster. They use proper libs without use LD_LIBRARY_PATH, but I used it "for safety" in the postmaster starting script. One more big thanks. Adam Jorge Serván wrote: > The Libraries used are solved by the liker. Try ldd <exec file> to > show the paths of the library that <exec file> needs. You can say to > the linker where it can find your libraries (man ld). > > Example 1: default paths from a default paths PostgreSQL installation. > $ ldd /usr/bin/psql > libpq.so.3 => /usr/lib/libpq.so.3 (0x40029000) > libpam.so.0 => /lib/libpam.so.0 (0x40044000) > libssl.so.2 => /lib/libssl.so.2 (0x4004c000) > libcrypto.so.2 => /lib/libcrypto.so.2 (0x40079000) > libkrb5.so.3 => /usr/kerberos/lib/libkrb5.so.3 (0x4013c000) > libcom_err.so.3 => /usr/kerberos/lib/libcom_err.so.3 (0x40194000) > libz.so.1 => /usr/lib/libz.so.1 (0x40198000) > libreadline.so.4 => /usr/lib/libreadline.so.4 (0x401a6000) > libtermcap.so.2 => /lib/libtermcap.so.2 (0x401cc000) > libcrypt.so.1 => /lib/libcrypt.so.1 (0x401d0000) > libresolv.so.2 => /lib/libresolv.so.2 (0x401fd000) > libnsl.so.1 => /lib/libnsl.so.1 (0x4020f000) > libdl.so.2 => /lib/libdl.so.2 (0x40225000) > libm.so.6 => /lib/i686/libm.so.6 (0x4022a000) > libc.so.6 => /lib/i686/libc.so.6 (0x4024d000) > libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40388000) > libk5crypto.so.3 => /usr/kerberos/lib/libk5crypto.so.3 > (0x4039d000) > /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) > > Example 2: modified paths from a not default paths PostgreSQL > installation. > Sitefdevel:~$ ldd $HOME/opt/postgres-8.1.5/bin/psql > $ echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" > LD_LIBRARY_PATH=/home/cvsitef/opt/postgres-8.1.5/lib > libpq.so.4 => /home/cvsitef/opt/postgres-8.1.5/lib/libpq.so.4 > (0x40018000) > libz.so.1 => /usr/lib/libz.so.1 (0x40042000) > libreadline.so.4 => /usr/lib/libreadline.so.4 (0x40050000) > libtermcap.so.2 => /lib/libtermcap.so.2 (0x40076000) > libcrypt.so.1 => /lib/libcrypt.so.1 (0x4007a000) > libresolv.so.2 => /lib/libresolv.so.2 (0x400a7000) > libnsl.so.1 => /lib/libnsl.so.1 (0x400b9000) > libdl.so.2 => /lib/libdl.so.2 (0x400d0000) > libm.so.6 => /lib/i686/libm.so.6 (0x400d4000) > libc.so.6 => /lib/i686/libc.so.6 (0x400f7000) > libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40232000) > /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) > > Best regards > Jorge Serván. > > Adam Radłowski wrote: > >> I'm testing 8.1.3 and 8.1.6 of FC3 2.6.12 . >> I have installed (compiled from source) two copies of PostgreSQL: >> 8.1.3 - typically in /usr/local/pgsql and I have configured path to >> these libs (in ld.so.conf): /usr/local/pgsql/lib >> 8.1.6 - not typically in /usr/local/pgsql816 (I edited before >> installing with "make install" src/Makefile.global and I changed >> "prefix" for install after "configure" and "make") >> I never use this two versions of postmaster parallel, so I use for >> them this same database cluster. >> >> What libraries uses postmaster 8.1.6 in this situation ? Their own >> libs or taken from 8.1.3 ? >> >> Best regards >> Adam >> >> ---------------------------(end of broadcast)--------------------------- >> TIP 7: You can help support the PostgreSQL project by donating at >> >> http://www.postgresql.org/about/donate >> >> > > ---------------------------(end of broadcast)--------------------------- > TIP 9: In versions below 8.0, the planner will ignore your desire to > choose an index scan if your joining column's datatypes do not > match > >