Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 962
Manoj G Avatar asked Dec 15 '22 22:12

Manoj G


2 Answers

Looks like the pgsql libraries are no longer installed in their previous locations. I linked both:

ln -s /usr/pgsql-9.3/lib /usr/lib/pgsql

ln -s /usr/pgsql-9.3/include /usr/include/pgsql

This worked for me :)

like image 168
warner121 Avatar answered Jan 14 '23 06:01

warner121


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. :)

like image 44
Manoj G Avatar answered Jan 14 '23 06:01

Manoj G