r语言 - 为什么不同的操作系统从 CRAN 安装软件包的方式不同



当我在Windows机器上install.package() R时,软件包从CRAN下载并安装。当我在 Linux 机器上做同样的事情时,包通常必须编译(至少,我认为这就是所有滚动过去的g++行的内容(。

为什么 Windows 上的软件包安装方法不同?

其他问题及其答案清楚地表明,特别是对Linux使用不同的方法和存储库,使用户能够获得更多/不同的软件包(特别是使用cran2deb存储库(。我的问题本质上更具理论性:为什么Windows中的默认选择是下载预编译(二进制?(包,而Linux中的默认设置似乎是从源代码编译包?

或者换句话说(基于Dirk在上面第二个链接中的断言(,为什么CRAN不为Unix类型的操作系统提供二进制包?

一般来说,Windows二进制文件适用于所有版本的Windows。

MacOS的关键/当前版本也是如此:提供的二进制文件有效。

可悲的是,Linux更复杂,因为不同的发行版布局不同。我在 Ubuntu 或 Debian(或者更具体地说,其特定发布版本(上构建的东西甚至可能不适用于同一发行版的其他版本,更不用说其他发行版了。 在某些情况下,您可以获取二进制文件。 在某个时候,我(共同(拥有所有CRAN的构建服务,但它死了/坏了。一切都可以通过努力来实现,但是...一些努力。

所以从源头上看是这样。无论如何,这曾经是标准,"Unix"是一个涵盖SunOS/Solaris,AIX,*BSD,SGI等的包罗万象的短语。通常甚至使用不同的处理器。 所以来源。

有人尝试提供"通用二进制文件":flatpack和snap是最近的两个例子。 当然还有Docker。

最新更新