导入的包不会自动安装

时间:2017-05-24 15:21:15

标签: r devtools r-package

我有一个本地存储的私有包(并通过SVN进行版本控制)。要安装软件包,我要求用户SVN更新他/她的软件包目录,然后更新目录上的<div class="flex-container"> <div class="flex-item">div a</div> <div class="flex-item">div b</div> <div class="flex-item">div a</div> </div>,然后setwd()

此程序包导入许多未在本地存储的CRAN程序包。这些导入的软件包在安装过程中不会自动安装,从而产生错误消息devtools::install()。用户必须手动安装Dependency package foo not available,然后再试一次,只是为了获得install.packages('foo'),令人作呕,即使Dependency package bar not availablefoo属于bar

详细信息:

我的描述文件如下:

Imports:

但是在调用Package: apackage Type: Package Title: Package to Do Stuff Version: 1.11111 Date: 2017-03-02 Author: C8H10N4O2 Maintainer: C8H10N4O2<C8H10N4O2@example.com> Description: Package that does many useful things License: file LICENSE Depends: R (>= 3.3.0) Imports: bit64 (>= 0.9.5), data.table (>= 1.9.6), extrafont (>= 0.17), foreach(>= 1.4.3), ggplot2 (>= 2.0.0), gbm (>= 2.1), grid (>= 3.2.3), gridExtra (>= 2.0.0), httr (>= 1.1.0), readxl (>= 0.1.1), scales (>= 0.4.0), xlsx (>= 0.5.7) LazyData: true RoxygenNote: 5.0.1 Suggests: testthat (>= 0.9.1) check()时,我仍然会收到错误:

load_all()

然后我的用户必须Error in (function (dep_name, dep_ver = NA, dep_compare = NA) : Dependency package gridExtra not available. ,然后他/她获得另一个依赖项不可用的错误。

我尝试了什么:

根据R packages

  此处列出的

install.packages('gridExtra')个包必须存在于您的包中   工作。事实上,无论何时安装软件包,这些软件包   将在您的计算机上安装(如果尚未安装)   (devtools :: load_all()还会检查是否已安装软件包。)

我还检查了Writing R Extensions,但无法在此主题上找到任何其他内容。

我是否认为这些软件包应该自动安装,我该怎么做才能确保它们自动安装?

我发现问题不完全可以重复,但我无法链接到我的回购,所以我很乐意提供任何其他详细信息。

Imports:

1 个答案:

答案 0 :(得分:2)

你正在用R重塑包装。我建议反对。您只需drat即可创建存储库。这是尝试和真实的和工作

部署方面,生产本地软件包以及使用和安装与您保存来源的位置完全正交。不要将源代码存储库误认为是代码分发机制。

总而言之,在本地使用drat以及本地GitHub Enterprise实例已经在我们的工作中顺利运行,而drat通常在相当广泛的使用中。

(通常免责声明,因为我是开始drat的人,但我也有很多贡献者的好运。)