devtools :: install():安装R包,导入另一个本地存储的包

时间:2016-04-28 20:59:17

标签: r dependencies install devtools

我正在尝试在本地构建R包,只是为了我自己的利益来标准化我的代码。我无意在CRAN或GitHub上发帖。我想要做的是将我已经开发的包装进口到我正在开发的新包装中。

例如:

  • 调用第一个包 pack_a 和第二个包 的 pack_b 即可。
  • pack_a 没有任何依赖关系并且安装没有任何问题。
  • pack_b 依赖于 pack_a 所以 pack_a 在imports标记下的 pack_b 的DESCRIPTION文件中引用。

我遇到的问题是,当我安装pack_b(使用devtools::install())时会出现以下错误:

Skipping 1 unavailable package: pack_a

查看code of devtools on GitHub后,看来它正在使用available.packages()在CRAN上查找所需的包。当然,我的 pack_a 不在CRAN上,因此无法找到它,然后 pack_b 无法安装。我希望它首先检查我的默认库中是否已安装 pack_a ,因此甚至不会尝试重新安装它。

所以我的问题归结为:

如何在安装 pack_b 时指定在本地驱动器上找到 pack_a 的位置?如果不可能,那么在安装过程中是否会关闭所需软件包的安装?

以前曾问过类似的问题而我并不完全确定,但我认为其中一条建议是将您的本地路径添加到repos的{​​{1}}参数中。然而,这对我不起作用。

之前的类似问题:R package which imports SparkR (not on CRAN)

非常感谢任何指导。

1 个答案:

答案 0 :(得分:0)

我不完全确定为什么你在没有更多细节的情况下遇到这个问题,正如我为你自己的软件包描述的那样(在CRAN上)并没有问题。< / p>

话虽如此,如果您确定在安装pack_a之前确定pack_b已安装,那么这是一个简单的解决方案:

devtools::install(dependencies = FALSE)