RPostgreSQL installation Error - RPostgreSQL.so: u

2019-06-26 00:02发布

问题:

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?

Thanks :)

回答1:

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



回答2:

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