rrpostgresql

RPostgreSQL installation Error - RPostgreSQL.so: undefined symbol: PQpass


I am trying to install R-Package RPostgreSQL, but getting the following error,

Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/usr/lib64/R/library/RPostgreSQL/libs/RPostgreSQL.so':
  /usr/lib64/R/library/RPostgreSQL/libs/RPostgreSQL.so: undefined symbol: PQpass
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/usr/lib64/R/library/RPostgreSQL’

I have libpq and postgresql-dev installed. All the library files are in the directory

/usr/lib64/pgsql/ and all header files are in the directory

/usr/include/pgsql/

Postgre Version - 9.3.4 R Version - 3.0.2 Operating System - CentOS-6.4

I am missing some small thing, but unable to find out why this is happening.

What am I doing wrong? How to correct this?


Solution

  • The package RPostgreSQL checks for PostgreSQL libraries only in the following directory paths,

        /usr/lib 
    /usr/lib/pgsql 
    /usr/lib/postgresql 
    /usr/local/lib 
    /usr/local/lib/pgsql 
    /usr/local/lib/postgresql 
    /usr/local/pgsql/lib 
    /usr/local/postgresql/lib 
    /opt/lib 
    /opt/lib/pgsql 
    /opt/lib/postgresql 
    /opt/local/lib 
    /opt/local/lib/postgresql 
    /opt/local/lib/postgresql84 
    /sw/opt/postgresql-8.4/lib 
    /Library/PostgresPlus/8.4SS/lib 
    /sw/lib
    

    It does not check for the directories either in LD_LIBRARY_PATH or in /etc/ld.so.conf.

    So RPostgreSQL installation will be successful only if the PostgreSQL libraries exist in any of the above directories.

    When I copied the libraries from /usr/lib64/pgsql to /usr/lib/pgsql and tried installing the package. It worked. :)