CRAN有适用于Windows和macOS的二进制版本的软件包。然而,install.packages()
只会在官方CRAN R发行版中运行时使用这些。如果使用不同的R发行版(例如,来自macOS上的Homebrew或MacPorts(或自己从源代码编译R,则install.packages()
将不会下载二进制文件,而是从源代码中编译所有包。
问题:
- 为什么
install.packages()
在非官方R发行版中运行时拒绝从CRAN获取二进制文件?我认为存在一些对二进制兼容性的担忧,我希望从技术上深入了解原因 - 如何验证二进制兼容性?
install.packages()
如何判断二进制文件是否可以使用 - 生成(a(与CRAN二进制文件兼容(b(将被
install.packages()
检测为兼容的单独R分发需要什么
来自?install.packages
中关于type
参数的文档:
CCD_ 8的可能值是(当前(";源"mac.binary";,以及";win.binary":支持的适当二进制类型也可以选择为"二进制";二进制";。
type
的默认设置为getOption("pkgType")
。在非CRAN版本中,该选项似乎默认为"source"
,如果您尝试将该选项设置为"both"
(这将是CRAN版本的默认值(,则install.packages
将抱怨。您可以将该选项设置为"mac.binary"
,或者使用type
参数完全绕过这些选项。
因此,要为dplyr安装最新的MacOS二进制文件,您可以执行以下操作:
install.packages("dplyr", type = "mac.binary")
或
options(pkgType = "mac.binary")
install.packages("dplyr")
请注意,这也将安装已安装程序包的依赖项。