MacOS下安装R包的一些注意事项

Posted 生信媛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MacOS下安装R包的一些注意事项相关的知识,希望对你有一定的参考价值。

早先升级 macOS10.15 电脑 SMC 出了一些问题,试了一些方法都没有解决,无奈只能继续升级到public beta 版本。

2020/6/15 更新


原文

目前的版本信息如下 10.15.1 beta 版本

 <key>ProductBuildVersion</key> <string>19B86a</string> <key>ProductCopyright</key> <string>1983-2019 Apple Inc.</string> <key>ProductName</key> <string>Mac OS X</string> <key>ProductUserVisibleVersion</key> <string>10.15.1</string> <key>ProductVersion</key> <string>10.15.1</string> <key>iosSupportVersion</key> <string>13.2</string>

升级了之后 R 下的很多需要编译的软件都用不了了。

原因之一是系统自带的 clang 不支持 -fopenmp,这个需要在 R 官网下载安装 LLVM 预先编译好的 clang 7 。我也尝试过跳过这个 R 官网提供的 clang7,直接通过安装 LLVM 来安装最新版的 clang7.1,但是在 10.15 的系统里直接通过 brew install llvm也会有不少问题,于是放弃。

除此之外还需要安装 gfortran , 如果去官方安装最新的版本在编译过程中会报 warning。因为 R 提供的 clang7 用的是 gfortran 6.1。这个还是需要去 R 官网提供的链接进行下载。

首先确认自己装了 Xcode command line tools (XCode CLI)

$ xcode-select -p/Library/Developer/CommandLineTools

如果你之前有旧版本的 gfortran 和 clang 最新好先删除一些文件

# Delete the clang6 binarysudo rm -rf /usr/local/clang6
# Delete the prior version of gfortran installedsudo rm -rf /usr/local/gfortransudo rm -rf /usr/local/bin/gfortran
# Remove the gfortran install receipts (run after the above commands)sudo rm -rf /private/var/db/receipts/com.gnu.gfortran.bomsudo rm -rf /private/var/db/receipts/com.gnu.gfortran.plist

如果在 10.14 里,这两个装好了后指定 clang7 的路径基本就解决问题。

但是 macOS 10.15 之后 usr 目录下无法新建 include 文件,这就导致clang 在运行的时候可能使用默认的位置找不到sdk目录。

这个坑还需要再进行一些配置。首先要找到实际的 sdk 目录:

$ xcrun --show-sdk-path/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk

然后在 R 的~/.R/Makevars配置文件中指定一些compilation flags,通过 -isysroot 定义 sdk。如果你发现自己没有这个文件,就新建一个即可。

CFLAGS=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdkCCFLAGS=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdkCXXFLAGS=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdkCPPFLAGS=-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -I/usr/local/include

最后在 ~/.Renviron 里写好clang7的路径。按道理这个路径写在 zshrc 里也是可以的,但这边测试的时候 Rstudio 启动 R 还是识别的系统默认 clang。

PATH="/usr/local/clang7/bin:${PATH}"

这些配置写好之后,可以在 R 里通过从 source 装两个软件测试一下。

install.packages(c("Rcpp", "RcppArmadillo", "data.table"), type = "source")

最后的最后,一般情况下或者新手建议不要从 source 去安装软件,就没有任何烦恼了。

以及最后的最后的最后,具体操作方法随着macOS和R版本的升级可能会有变化,仅供参考。

本文转载自博客: https://kaopubear.top/blog/2019-10-29-macos15user/ 

以及最后的最后的最后的最后阅读原文有惊喜


以上是关于MacOS下安装R包的一些注意事项的主要内容,如果未能解决你的问题,请参考以下文章

R语言中Granger因果检验的函数在哪个程序包中

由于macOS 10.12.3和10.12.5上缺少zlib,R无法安装devtools或git2r

通过制作R包的方式安装一些版本错位的包——以Rdonlp2为例子

通过制作R包的方式安装一些版本错位的包——以Rdonlp2为例子

通过制作R包的方式安装一些版本错位的包——以Rdonlp2为例子

安装R语言的包的方法