从源代码和已编译的二进制文件安装软件包之间的区别

时间:2012-03-10 07:23:08

标签: r

在Debian中,官方存储库中有一些已编译的R包。但是也可以从源代码安装R包。 我很想知道为什么用户更喜欢一种安装方法。

3 个答案:

答案 0 :(得分:3)

有时候最好“编译”服务器上的源代码,而不仅仅是使用现有的可执行文件。

这是因为编译器专门为您的机器生成exe文件,因此可以更快地运行并且工作得更好,例如编译器知道您拥有的处理器,因此可以针对此进行优化。

答案 1 :(得分:3)

我已经提供了一个有点详细的答案in response to this SO question

作为更新,现在由于更新的cran2deb初始化,你甚至预装了很多软件包:

  • 在Ubuntu上,你现在已经在Launchpad上通过Michael Rutter的'cran2deb for ubuntu' ppa预建了几乎所有的CRAN软件包。

  • 对于Debian,Don Armstrong现在在debian-r.debian.net提供类似的服务(也包括BioConductor和OmegaHat)。

答案 2 :(得分:2)

Debian / Ubuntu的预编译R包的想法是从Windows和MacOS借用。这些操作系统具有预编译的软件包,因为它们通常没有标准位置的标准工具来从源代码构建软件包(c和fortran编译器,latex,perl等)。

如果CRAN上有新版本的软件包,Debian repos上的预编译软件包会自动更新吗?我相信你最好与CRAN同步。查看软件包ctv,以帮助您管理大量R软件包(“CRAN视图”),以便进行安装和更新。

您需要root权限才能从OS repos安装预编译的软件包,而任何普通用户都可以在R中使用install.packages()安装任何软件包(但我建议运行sudo R,如果您是sysadmin,用于安装CRAN视图,以便在系统范围内使用它们,而不是给你的〜/)充气。

一个不方便的源包是,如果您获取许多,编译将花费额外的时间来安装(取决于您的机器)。你可能会从编译中获得性能,但不能保证它是显而易见的。