1

我正在尝试在 Linux 机器上安装 ROracle。Oracle 客户端已安装并设置。但是,当我尝试安装 ROracle 时,出现错误。到目前为止我已经遵循的步骤:

安装oracle客户端:

oracle-instantclient19.6-sqlplus-19.6.0.0.0-1.i386 
oracle-instantclient19.6-devel-19.6.0.0.0-1.i386
oracle-instantclient19.6-basic-19.6.0.0.0-1.i386
oracle-instantclient19.6-odbc-19.6.0.0.0-1.i386
oracle-instantclient19.6-jdbc-19.6.0.0.0-1.i386
oracle-instantclient19.6-tools-19.6.0.0.0-1.i386

检查 是否与libclntsh.so链接libclntsh.so.11.1。在 LD_LIBRARY_PATH 中设置 lib 路径

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64:/usr/lib/oracle/19.6/client/lib/

运行安装脚本:

R CMD INSTALL --configure-args='--with-oci-lib=/usr/lib/oracle/19.6/client/lib/ --with-oci- 
inc=/usr/include/oracle/19.6/client' ROracle_1.3-1.tar.gz

我收到以下错误:

* installing to library ‘/opt/wolf_workspace/R_Libraries’
* installing *source* package ‘ROracle’ ...
** package ‘ROracle’ successfully unpacked and MD5 sums checked
configure: creating ./config.status
config.status: creating src/Makevars
** libs
gcc -I/opt/R/3.3.3/lib/R/include -DNDEBUG -I/usr/include/oracle/19.6/client -I/usr/local/include -fpic -g -O2 -c rodbi.c -o rodbi.o
gcc -I/opt/R/3.3.3/lib/R/include -DNDEBUG -I/usr/include/oracle/19.6/client -I/usr/local/include -fpic -g -O2 -c rooci.c -o rooci.o
gcc -shared -L/opt/R/3.3.3/lib/R/lib -L/usr/local/lib -o ROracle.so rodbi.o rooci.o -L/usr/lib/oracle/19.6/client/lib/ -lclntsh -L/opt/R/3.3.3/lib/R/lib -lR
/usr/bin/ld: skipping incompatible /usr/lib/oracle/19.6/client/lib//libclntsh.so when searching for -lclntsh
/usr/bin/ld: cannot find -lclntsh
collect2: error: ld returned 1 exit status
make: *** [/opt/R/3.3.3/lib/R/share/make/shlib.mk:6: ROracle.so] Error 1
ERROR: compilation failed for package ‘ROracle’
* removing ‘/opt/wolf_workspace/R_Libraries/ROracle’

我正在尝试在 R 3.3.3 和 Linux Redhat/Centos 8 上进行设置。任何帮助将不胜感激。

4

2 回答 2

0

同样clntsh的问题,即使是 x64 Basic Light 和 SDK 包。

我正在尝试ROracle_1.3-1.1.tar.gz从 CRAN

使用ROracle_1.3-2_R_x86_64-linux-gnu.tar.gzOracle 的 INSTALL 命令效果很好。

LD_LIBRARY_PATH=/usr/lib/oracle/21/client64/lib:...
OCI_LIB=/opt/oracle/instantclient_21_4

$ R CMD INSTALL ROracle_1.3-2_R_x86_64-linux-gnu.tar.gz
* installing to library ‘/usr/local/lib/R/site-library’
* installing *binary* package ‘ROracle’ ...
* DONE (ROracle)
于 2021-11-13T00:44:49.680 回答
0

对于 ROracle,只需要 Basic(或更小的 Basic Light)和 SDK 包。其他的不需要。

要回应现有的评论,您很可能需要 64 位版本,但您已经安装了 32 位版本。

由于您正在安装 RPM 包(而不是 ZIP),因此您不需要设置 LD_LIBRARY_PATH,因为 RPM 安装对您来说是等效的。

最新的 ROracle 位于https://www.oracle.com/database/technologies/roracle-downloads.html而不是 CRAN(由于一些 CRAN 问题)

于 2020-11-17T23:00:14.500 回答