4

我正在尝试安装 R-Package RPostgreSQL,但出现以下错误,

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’

我已经安装了libpqpostgresql-dev所有的库文件都在目录中

/usr/lib64/pgsql/并且所有头文件都在目录中

/usr/include/pgsql/

Postgre 版本 - 9.3.4 R 版本 -3.0.2 操作系统 -CentOS-6.4

我错过了一些小东西,但无法找出为什么会这样。

我究竟做错了什么?如何纠正这个?

4

2 回答 2

7

看起来 pgsql 库不再安装在它们以前的位置。我链接了两者:

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

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

这对我有用:)

于 2014-10-19T17:13:45.750 回答
5

包 RPostgreSQL 仅在以下目录路径中检查 PostgreSQL 库,

    /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

它不检查 inLD_LIBRARY_PATH或 in 中的目录/etc/ld.so.conf

因此,只有当 PostgreSQL 库存在于上述任何目录中时,RPostgreSQL 安装才会成功。

当我将库复制/usr/lib64/pgsql/usr/lib/pgsql并尝试安装软件包时。有效。:)

于 2014-05-30T17:04:49.127 回答