为什么不同的操作系统以不同方式安装CRAN的软件包?

时间:2017-11-17 05:20:54

标签: r cran install.packages

当我在Windows计算机上的R install.package()时,该程序包将从CRAN下载并安装。当我在Linux机器上执行相同的操作时,通常必须编译程序包(至少,我认为滚动过去的所有g++行都是这样的。)

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

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

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

1 个答案:

答案 0 :(得分:1)

通常,Windows二进制文件适用于所有版本的Windows。

同样适用于MacOS的主要/当前版本:提供的二进制文件工作。

遗憾的是,Linux更加复杂,因为不同的发行版不同。我在Ubuntu或Debian(或者更具体地说,它的特定发行版本)上构建的东西可能甚至不能用于同一发行版的其他版本,更不用说其他发行版。在某些情况下,您可以获得二进制文件。在某些时候,我(共同)拥有所有CRAN的构建服务,但它已经死亡/破产。所有努力都可以,但......努力。

所以从源头来看。无论如何,这用作标准,“Unix”是一个涵盖SunOS / Solaris,AIX,* BSD,SGI等等的全能短语。通常使用不同的处理器。所以来源。

尝试提供'通用二进制文件':flatpack和snap是最近的两个例子。然后就是Docker。