【问题标题】:Difference between installing a package from source and from compiled binary [duplicate]从源代码和编译的二进制文件安装软件包之间的区别[重复]
【发布时间】:2012-03-10 07:23:08
【问题描述】:

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

【问题讨论】:

    标签: r


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      作为一个更新,由于更新了 cran2deb initiaives,这些天你甚至有很多预构建的包:

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

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

      【讨论】:

      • 这个答案没有说明“从源代码安装包和从编译的二进制文件安装包的区别”
      【解决方案3】:

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

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

      您需要 root 权限才能从 OS 存储库安装预编译的软件包,而任何普通用户都可以在 R 中使用 install.packages() 安装任何软件包(但如果您是系统管理员,我建议运行 sudo R 来安装CRAN 视图,以便使它们在系统范围内可用,而不是夸大你的 ~/)。

      源包的一个不便之处在于,如果您获取很多包,编译将花费额外的时间来安装(取决于您的机器)。您可能会从编译中获得性能提升,但不能保证会很明显。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-11
        • 1970-01-01
        相关资源
        最近更新 更多