【问题标题】:Do packages installed from Github need Rtools?从 Github 安装的软件包是否需要 Rtools?
【发布时间】:2020-11-24 22:24:52
【问题描述】:

我正在创建我的第一个包,它将通过 Github 安装。我认为只有创建它的人才需要 Rtools。但是,尝试使用 Github 安装它的人被要求更新 Rtools。这真的有必要吗?

做了一些研究,我发现了这个:https://community.rstudio.com/t/missing-rtools-should-i-be-worried/27817

其中一个答案如下:

"这意味着如果你要安装需要的包 编译,您还必须在系统中安装 Rtools。 "

这是带有包的仓库:https://github.com/datazoompuc/PNAD_Covid/tree/master/R/datazoom_pnad_covid

这实际上是什么意思?我怎么知道我的包需要编译?

【问题讨论】:

  • 你能显示他们正在运行的确切命令和他们收到的确切消息吗?我想知道翻译中是否丢失了某些东西。另外,还不如提供一个链接到有问题的仓库,这样我们就可以确切地看到发生了什么。
  • @MrFlick 我已添加链接
  • 感谢您的回购链接。安装该软件包需要 Rtools 似乎很奇怪。所以现在我真的很好奇正在运行什么命令来安装软件包,他们得到的具体消息是什么以及它到底在哪里弹出。
  • @MrFlick 我会与一些用户核实并跟进!谢谢

标签: r github package devtools


【解决方案1】:

你的包“需要编译”——即需要从源代码安装 Rtools(在 Windows 上)——如果它包含 C 或 Fortran 组件,即如果你的包的 src/ 目录中有任何东西......

如果您,包的作者,不知道您的包中是否包含 C 或 Fortran 代码,那么您几乎可以肯定不知道。

devtools 很可能过于热心,即检测到用户拥有不是最新的Rtools 并建议(要求??)他们更新它,即使此安装不需要它。

【讨论】:

  • 我如何检查这个?在依赖方面,它只依赖于 tidyverse 中的一些函数
【解决方案2】:

我认为只有创建它的人才需要 Rtools。

是的,当且仅当您将其分发为 二进制。然后创作者使用Rtools编译链接,用户安装即可享受。

这就是 CRAN 的工作原理,因为 CRAN 为 Windows 用户编译。

然而,

GitHub 主要是一个 source 存储库,因此从 GitHub 安装使用的是源模式......每个用户都需要编译,因此拥有 Rtools。 (除非包及其所有依赖项仅是 R 代码。)

您还可以在 GitHub 上使用 eg drat 包来创建 包存储库,但这让我们离最初的问题更进一步。

【讨论】:

  • 问题中的 repo 已包含在问题中,它基本上只是一个 R 代码文件。没有src 目录。还有其他需要编译的东西吗?
  • 不依赖?在这种情况下,警告将过于热心。
  • DESCRIPTION 文件中没有列出“Depends”。我看到一些导入:`dplyr、labelled、purrr、readr、stringr`,但这些都应该在 CRAN 上。我的猜测是错误消息没有被正确转发。也许这是其中一个消息,即其中一个包的编译版本可用,但有一个新版本作为源可用,然后他们选择从源安装,然后得到该消息?只是不确定是否会发生其他事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-20
  • 2015-03-12
  • 1970-01-01
  • 1970-01-01
  • 2013-05-23
  • 2015-01-28
相关资源
最近更新 更多