如何确定OS X上的R安装是否启用了"--enable-R-shlib"选项?

Mil*_*der 5 ruby installation gem r

我已经通过.pkg方法在我的OS X机器上安装了R. 我正在尝试使用名为RSRuby的Ruby gem来工作,虽然它安装正确但是当我尝试调用gem时它会抛出一个错误.

Fatal error: R home directory is not defined
Run Code Online (Sandbox Code Playgroud)

RSRuby文档声明R应该使用选项--enable-R-shlib安装.但R文档指出Mac OS X安装默认情况下会这样做.如果您不知道在安装期间显式调用此选项,如何验证是否在安装上启用了此选项?

我正在追寻为什么RSRuby找不到R主目录,这似乎是最可能的问题.

根据RSRuby文档,我将其复制到我的主目录中

[~]$ R_HOME=/Library/Frameworks/R.framework/Resource
Run Code Online (Sandbox Code Playgroud)

从R控制台,这是输出:

> R.home()
[1] "/Library/Frameworks/R.framework/Resources"
Run Code Online (Sandbox Code Playgroud)

在gem安装期间,我运行了这个命令:

gem install rsruby -- --with-R-dir=$R_HOME=/Library/Frameworks/R.framework/Resources
Run Code Online (Sandbox Code Playgroud)

另外,这些是我的/Library/Frameworks/R.framework/Libraries文件夹的内容:

[Libraries]$ ls
i386                    libRblas.dylib.dSYM     libgfortran.2.dylib
libR.dylib              libRblas.vecLib.dylib   libreadline.5.2.dylib
libR.dylib.dSYM         libRlapack.dylib        libreadline.dylib
libRblas.0.dylib        libRlapack.dylib.dSYM   ppc
libRblas.dylib          libgcc_s.1.dylib        x86_64
Run Code Online (Sandbox Code Playgroud)

Dir*_*tel 7

简述:

  1. 您可以--enable-R-shlib通过查看生成的R二进制文件来检查; 在Linux上,我可以做到ldd /usr/lib/R/bin/exec/R这一点,揭示了libR.so- 共享R库---由这个二进制文件加载.这就是嵌入R(RInside,littler,R-in-Apache模块......)的其他项目的使用,并且可能是RSRuby将使用的.

  2. 如果您收到错误'R home directory not defined',我将首先定义环境变量R_HOME.

编辑:回顾问题1,在OS X上,您的动态库结束.dylib.因此,您显示的目录列表清楚地表明R是--enable-R-shlib作为编译时选项构建的.关于问题2,我得到的第一个谷歌搜索rsruby os x清楚地描述了如何设置R_HOMEOS X(正如我告诉你的那样),请参阅https://github.com/alexgutteridge/rsruby.

  • 作为参考,`ldd` 的 OS X 等价物是 `otool -L` (2认同)