我正在尝试安装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’
我安装了libpq
和postgresql-dev
。所有库文件都在目录
/usr/lib64/pgsql/
并且所有头文件都在目录
/usr/include/pgsql/
Postgre版本 - 9.3.4
R版本 - 3.0.2
操作系统 - CentOS-6.4
我错过了一些小事,但无法找出原因。
我做错了什么?如何纠正这个?
谢谢:)
答案 0 :(得分:7)
看起来pgsql库不再安装在以前的位置。我把两者联系起来:
ln -s /usr/pgsql-9.3/lib /usr/lib/pgsql
ln -s /usr/pgsql-9.3/include /usr/include/pgsql
这对我有用:)
答案 1 :(得分: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
它不会检查LD_LIBRARY_PATH
或/etc/ld.so.conf
中的目录。
只有当PostgreSQL库存在于上述任何目录中时,RPostgreSQL安装才会成功。
当我将库从/usr/lib64/pgsql
复制到/usr/lib/pgsql
并尝试安装软件包时。有效。 :)