devtools::install(): 正在安装 R 包,它导入另一个存储在本地的包
devtools::install(): Installing R package which imports another package that is stored locally
我正在尝试在本地构建 R 包,只是为了为了我自己的利益而标准化我的代码。我无意在 CRAN 或 GitHub 上 post。我想做的是将我已经开发的包导入到我正在开发的新包中。
例如:
- 调用第一个包pack_a和第二个包
pack_b.
- pack_a 没有任何依赖关系,安装没有任何问题。
- pack_b依赖于pack_a 所以 pack_a 在 [=36= 的 DESCRIPTION 文件中被引用]pack_b 在进口标签下。
我面临的问题是当我安装 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_a 的位置36=]pack_b?如果那不可能,是否有一个开关可以在安装过程中关闭所需软件包的安装?
之前有人问过类似的问题,我不完全确定,但我认为其中一个建议是将您的本地路径添加到 install.packages()
的 repos
参数中。然而,这对我不起作用。
上一个类似问题:R package which imports SparkR (not on CRAN)
任何指导将不胜感激。
我不完全确定你为什么会遇到这个问题而没有更多细节,正如我对我自己的包裹所描述的那样(在 CRAN 上也是 not)和没有问题。
话虽如此,如果您确定 在 安装 pack_b
之前安装了 pack_a
,那么一个简单的解决方案是 运行 :
devtools::install(dependencies = FALSE)
我正在尝试在本地构建 R 包,只是为了为了我自己的利益而标准化我的代码。我无意在 CRAN 或 GitHub 上 post。我想做的是将我已经开发的包导入到我正在开发的新包中。
例如:
- 调用第一个包pack_a和第二个包 pack_b.
- pack_a 没有任何依赖关系,安装没有任何问题。
- pack_b依赖于pack_a 所以 pack_a 在 [=36= 的 DESCRIPTION 文件中被引用]pack_b 在进口标签下。
我面临的问题是当我安装 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_a 的位置36=]pack_b?如果那不可能,是否有一个开关可以在安装过程中关闭所需软件包的安装?
之前有人问过类似的问题,我不完全确定,但我认为其中一个建议是将您的本地路径添加到 install.packages()
的 repos
参数中。然而,这对我不起作用。
上一个类似问题:R package which imports SparkR (not on CRAN)
任何指导将不胜感激。
我不完全确定你为什么会遇到这个问题而没有更多细节,正如我对我自己的包裹所描述的那样(在 CRAN 上也是 not)和没有问题。
话虽如此,如果您确定 在 安装 pack_b
之前安装了 pack_a
,那么一个简单的解决方案是 运行 :
devtools::install(dependencies = FALSE)