gpt4 book ai didi

由于缺少 GSL,R 包在 Unix 机器上构建失败 - GNU 科学图书馆

转载 作者:行者123 更新时间:2023-12-04 11:47:25 25 4
gpt4 key购买 nike

我在 R 包开发方面面临着一个特别棘手的问题。我自己的包,称为 ggstatsplot ( https://github.com/IndrajeetPatil/ggstatsplot ),依赖于 userfriendlyscience ,它依赖于另一个名为 MBESS 的包,它本身最终依赖于另一个名为 gsl 的包。在 Windows 机器上安装 ggstatsplot 完全没有问题(由 AppVeyor 持续集成平台评估: https://ci.appveyor.com/project/IndrajeetPatil/ggstatsplot )。

但是每当要在 Unix 机器上安装该软件包时,就会抛出 ggstatsplot 无法下载的错误,因为 userfriendlyscienceMBESS 无法下载,因为 065'104 无法下载。在具有虚拟 Unix 机器的 gsl 持续集成平台上也显示了同样的事情,其中​​包构建失败( https://travis-ci.org/IndrajeetPatil/ggstatsplot )。

现在,为 Unix 机器上的用户解决此问题的一种方法是配置 GSL(如下所述:
installing R gsl package on Mac ),但我不可能期望 Travis 的每个用户都经历配置 ggstatsplot 的艰巨过程。我希望他们只运行 GSL 并完成它。

因此,如果有人能就如何通过从源头上消除这个问题来让我的包用户的生活变得更简单,我将不胜感激。我是否应该在包本身中包含一些内容来代表用户处理这个问题?

最佳答案

通过更改您的 R 包,这可能没有令人满意的解决方案(我不确定任一方式)。如果 gsl 包作者(包括前 R 核心成员)没有对其进行配置以避免预先安装 linux 包,那么可能有充分的理由不这样做。
但令人欣慰的是,大多数 R+Linux 用户明白某些 R 包首先需要安装底层 Linux 库(例如,通过 aptdnf/yum )。
主要问题:使用户易于安装
尝试在 GitHub 自述文件和 CRAN INSTALL file 上非常清楚。 gsl 包有 decent CRAN directions 。这导致以下 bash 代码:

sudo apt-get install libgsl0-dev
我见过的最好的清晰(linux pre-req 包)文档示例来自 curlsf 包。 sfCRAN page 仅列出了 3 个库的人名,但 GitHub page 为三个主要分发分支提供了确切的 bash 命令。 curl 包也做得很好(例如, CRANGitHub )。例如,它提供了以下解释和 bash 代码:

Installation from source on Linux requires libcurl. On Debian or Ubuntu use libcurl4-openssl-dev:

sudo apt-get install -y libcurl-dev
理想情况下,您的文档将描述如何在多个发行版上安装 gsl linux 包。
免责声明:我从未开发过直接需要 Linux 包的包,但我经常使用它们。如果更多的例子会有所帮助, this doc 包含一个我用来在新的 Ubuntu 机器上安装东西的脚本。一些命令在包文档中明确说明;有些几乎没有或没有文件,需要研究。
编辑 2018-04-07 :
我遇到了我最喜欢的新示例: sys package 使用 config 文件在 R 控制台中生成以下消息。在新计算机上安装 100 多个包时,很高兴看到这条直接消息,而不必追踪 R 包及其依赖项的文档。

On Debian/Ubuntu this package requires AppArmor.

Please run: sudo apt-get install libapparmor-dev


另一个好的是 pdftools ,它也使用 config 文件(也是由 Jeroen Ooms 开发的)。
次要问题:在 Travis 上安装
userfriendly travis config file 显然直接安装了很多二进制文件(包括 gsl ),与 current ggstatsplot version 不同。
或者,我更熟悉告诉 travis 安装 linux 包,如 curl's config file 所示。作为奖励,这可能更接近地复制了典型用户在他们自己的机器上所做的事情。
addons:
apt:
packages:
- libcurl4-openssl-dev
跟进 2018-03-13 Indrajeet 和我调整了 travis 文件,使其正常工作。 yaml 文件中的 Two sections were changed:
  • libgsl0-dev 部分下添加了 packages 条目(类似于上面的 libcurl4-openssl-dev 条目)。
  • 软件包列在 r_binary_packages 部分,因此它们安装为二进制文件。构建在 50 分钟后超时,现在不到 10 分钟。在这个特定的包中,r_binary_packages 部分嵌套在 Travis 矩阵的 Linux 部分中,因此它不会干扰他在 Travis 上的两个 OS X 作业。
  • 关于由于缺少 GSL,R 包在 Unix 机器上构建失败 - GNU 科学图书馆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49162670/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com