CRAN 的 MacOS 的自制 R 和“标准”R 可以共存吗?

Posted

技术标签:

【中文标题】CRAN 的 MacOS 的自制 R 和“标准”R 可以共存吗?【英文标题】:Can homebrew R and "standard" R for MacOS from CRAN coexist? 【发布时间】:2019-11-25 11:30:09 【问题描述】:

我在运行 Sierra 的 Mac Mini 和运行 El Capitan 的 MacBook Pro 上运行 R 3.6.1。我通常会从 CRAN 或 github 获得我需要的所有 R 软件包并毫无问题地使用它们,但我正在尝试安装和使用需要 fortran 编译器和这给了我问题。即使安装了gfortranR 包仍然不起作用(fortran 代码似乎编译成功但包安装失败)。软件包开发者建议通过homebrew 安装R 可能会解决问题。相反,我的预感是它会导致一个痛苦的世界,引用大莱博夫斯基的沃尔特的话。我的问题是:

    与从 CRAN 安装的“常规”版本相比,MacOSX 的 R 的自制版本有什么优势? 两个版本可以共存吗? 自制版本会影响普通版本吗?

    最后:自制软件会有所帮助还是会简单地打开一个整体 新的蠕虫罐头?

    非常感谢。

【问题讨论】:

看看这里:owsiak.org/r-3-4-rjava-macos-and-even-more-mess也许这个对你有帮助。 记录在案:我描述的问题仍然存在于运行 El Capitan 的笔记本电脑上的 R 3.6.1 for Mac(来自 CRAN)上。相反,我设法在运行 Sierra 的 Mac Mini 上安装了该软件包。首先,我继续在其上安装自制软件,但我没有安装自制软件 R。相反,我安装了适用于 Sierra 的 gfortran,然后在从 CRAN 下载的适用于 Mac 的常规 R 3.6.1 上安装了 NicheMapR,这一次它工作了。我不知道安装自制软件是否会有所作为,也不知道为什么我的另一台机器上仍然存在问题,但这是领先一步。 【参考方案1】:

是的,从homebrew 安装是一个痛苦的秘诀。官方 CRAN 二进制维护者特别建议不要使用它,请参阅 his remarks from March 2016 on r-sig-mac

关于您的问题,可以总结为:

    R for MacOSX 的自制版本与从 CRAN 安装的“常规”版本相比有什么优势?

积极因素:选择您自己的 BLAS 并轻松使用地理空间工具。

缺点:总是需要编译每个R包。

    这两个版本可以共存吗?

是的。 homebrew 版本安装到不同的目录中。但是,请注意库冲突(请参阅下一个问题)。但是,您将不得不处理有关可从控制台访问哪个版本的 R 的符号链接,并且您还需要考虑使用 RSwitch 在 R 之间切换版本。

    自制版本会影响普通版本吗?
是的,如果库路径重叠。包安装和加载会有问题。确保设置不同的库路径。为此,请查看.libPaths() documentation。
    最后:自制软件会有所帮助,还是会简单地打开一个全新的蠕虫罐?

是的,不是的。除非您知道自己在做什么,否则请选择 R 的 CRAN 版本及其各种好东西。

【讨论】:

等等——你说“总是需要编译每个 R 包”是使用自制软件的一个缺点。在 Mac OS 上,我们不是总是需要从源代码编译 R 包吗? @KenWilliams CRAN 如果在 macOS 或 Windows 上为您执行此操作。只有 Linux 用户需要从源代码编译。不过,随着 RStudio 的包管理器的引入,可以为流行的 linux 发行版获取二进制文件。 我这辈子的知识在哪里!

以上是关于CRAN 的 MacOS 的自制 R 和“标准”R 可以共存吗?的主要内容,如果未能解决你的问题,请参考以下文章

CRAN 包检查和 R CMD 检查-as--cran 之间的差异

如何将我的时区设置为太平洋标准时间? https://cran.cnr.berkeley.edu/

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

R的获取和安装

安装没有在R包仓库CRAN上托管的R包

从 CRAN 镜像安装具有依赖项的本地 R 包