在r中对oracle,关于r:在Mac中安装ROracle

我在Mac OS Sierra上。

我已经尝试过-在OS X Mavericks上安装RODBC / ROracle软件包,但没有帮助。

这是我所做的:

从http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html-基本,Sql plus,odbc下载

解压缩到Instantclient_12_1中的主文件夹中

ln -s libclntsh.dylib.12.1 libclntsh.dylib

导出DYLD_LIBRARY_PATH = /用户/ dhananjaygoel / instantclient_12_1:$ DYLD_LIBRARY_PATH

R CMD安装--configure-args ='-with-oci-lib = / Users / dhananjaygoel / instantclient_12_1'ROracle_1.3-1.tar.gz

它给了我以下错误:

* installing to library ‘/Library/Frameworks/R.framework/Versions/3.3/Resources/library’

* installing *source* package ‘ROracle’ ...

** package ‘ROracle’ successfully unpacked and MD5 sums checked

configure: creating ./config.status

config.status: creating src/Makevars

** libs

clang -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/Users/dhananjaygoel/instantclient_12_1/sdk/include -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include    -fPIC  -Wall -mtune=core2 -g -O2  -I/opt/local/include -c rodbi.c -o rodbi.o

rodbi.c:2432:53: warning: format specifies type 'long long' but the argument has

type 'sb8' (aka 'long') [-Wformat]

sprintf(err_buf, RODBI_ERR_BIND_VAL_TOOBIG, bndsz);

^~~~~

/usr/include/secure/_stdio.h:47:56: note: expanded from macro 'sprintf'

__builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__)

^~~~~~~~~~~

rodbi.c:2469:53: warning: format specifies type 'long long' but the argument has

type 'sb8' (aka 'long') [-Wformat]

sprintf(err_buf, RODBI_ERR_BIND_VAL_TOOBIG, bndsz);

^~~~~

/usr/include/secure/_stdio.h:47:56: note: expanded from macro 'sprintf'

__builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__)

^~~~~~~~~~~

rodbi.c:2816:55: warning: format specifies type 'long long' but the argument has

type 'sb8' (aka 'long') [-Wformat]

sprintf(err_buf, RODBI_ERR_BIND_VAL_TOOBIG, bndsz);

^~~~~

/usr/include/secure/_stdio.h:47:56: note: expanded from macro 'sprintf'

__builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__)

^~~~~~~~~~~

rodbi.c:2861:55: warning: format specifies type 'long long' but the argument has

type 'sb8' (aka 'long') [-Wformat]

sprintf(err_buf, RODBI_ERR_BIND_VAL_TOOBIG, bndsz);

^~~~~

/usr/include/secure/_stdio.h:47:56: note: expanded from macro 'sprintf'

__builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__)

^~~~~~~~~~~

4 warnings generated.

clang -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/Users/dhananjaygoel/instantclient_12_1/sdk/include -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include    -fPIC  -Wall -mtune=core2 -g -O2  -I/opt/local/include -c rooci.c -o rooci.o

clang -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o ROracle.so rodbi.o rooci.o -L/Users/dhananjaygoel/instantclient_12_1 -lclntsh -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation

installing to /Library/Frameworks/R.framework/Versions/3.3/Resources/library/ROracle/libs

** R

** inst

** preparing package for lazy loading

** help

*** installing help indices

** building package indices

** testing if installed package can be loaded

Error in dyn.load(file, DLLpath = DLLpath, ...) :

unable to load shared object '/Library/Frameworks/R.framework/Versions/3.3/Resources/library/ROracle/libs/ROracle.so':

dlopen(/Library/Frameworks/R.framework/Versions/3.3/Resources/library/ROracle/libs/ROracle.so, 6): Library not loaded: @rpath/libclntsh.dylib.12.1

Referenced from: /Library/Frameworks/R.framework/Versions/3.3/Resources/library/ROracle/libs/ROracle.so

Reason: image not found

Error: loading failed

Execution halted

ERROR: loading failed

* removing ‘/Library/Frameworks/R.framework/Versions/3.3/Resources/library/ROracle’

有人请帮忙。

您找到解决方案了吗?

以下内容在运行El Capitan的几台计算机上对我有用,因此也许可以在High Sierra上使用。与某些其他说明不同,这不需要您禁用SIP。

安装Oracle Instant Client Basic,SDK和SQL * Plus软件包。我很确定我没有使用ODBC程序包,尽管如果有的话它也不会妨碍您。

创建或编辑~/.R/Makevars。添加以下内容:

CC=/usr/bin/clang -rpath /Users/dhananjaygoel/instantclient_12_1

LDFLAGS=-L/Users/dhananjaygoel/instantclient_12_1

CC中的-rpath设置和LDFLAGS中的-L链接目录都应该是Instant Client的.dylib文件的位置。如果您已将它们移动到另一个位置(我个人更喜欢创建一个/ lib子目录并将其放在此处),那么这就是您要指向的位置。

运行安装命令:

R CMD INSTALL --configure-args='--with-oci-lib=/Users/dhananjaygoel/instantclient_12_1' ROracle_1.3-1.tar.gz

--with-oci-lib=指向Instant Client的根目录(与Makevars中的引用不同,据我所知,这不依赖.dylib文件的位置)。

我发现这个在谷歌搜索。

只需按Ctrl + f(或者在Mac上为您的替代品,我使用的是Linux)上的"找不到图像"一词,就会带您解决问题。

该页面最终将带您到这里。

这与您的错误非常相似,但是,我没有使用Mac的经验,希望可以帮助您:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值