从 Github 安装的包是否需要 Rtools?

Do packages installed from Github need Rtools?

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

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

其中一个答案如下:

"This means that if you are going to install packages that need compilation, you also have to install Rtools in your system. "

这是包含软件包的回购协议:https://github.com/datazoompuc/PNAD_Covid/tree/master/R/datazoom_pnad_covid

这到底是什么意思?我怎么知道我的包需要编译?

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

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

很有可能 devtools 过于热心,即检测到用户有 not-most-current Rtools 并建议(要求??)他们更新它,即使它没有此安装需要。

I thought that Rtools was needed only for the person creating it.

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

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

然而,

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

您还可以在 GitHub 上创建一个 软件包存储库 ,使用 例如 drat 软件包来创建它,但这让我们离最初的问题有点远了。