从Github安装的软件包需要Rtools吗?

时间:2020-08-04 18:53:34

标签: r github package devtools

我正在创建我的第一个软件包,该软件包将通过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

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

2 个答案:

答案 0 :(得分:3)

您的软件包“需要编译”(即,需要Rtools从源代码安装(在Windows上))(如果它包含C或Fortran组件,即如果软件包的src/目录中有任何内容,则<... / p>

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

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

答案 1 :(得分:2)

我认为Rtools仅是创建它的人所需要的。

是的,当且仅当您将其作为 binary 分发时。然后,创建者使用Rtools进行编译和链接,用户只需安装并享受。

这就是CRAN作为Windows用户的CRAN编译工作的方式。

但是,

GitHub最重要的是 source 信息库,因此从GitHub进行的安装使用的是源代码模式...并且每个用户都需要编译,因此拥有Rtools。 (除非程序包及其所有操作仅是R代码。)

您还可以使用drat软件包创建 eg 在GitHub上创建软件包存储库,但这使我们与原始版本有所不同问题。