安装本地软件包时更新依赖关系

时间:2018-06-25 22:38:16

标签: r r-package

我有一个我要安装的本地软件包,安装后,它还会根据软件包的DESCRIPTION文件中定义的依赖项来更新/比较当前安装的软件包。 install.packages()可以在repos = NULL时用于安装本地文件,但不会相应地更新/安装依赖项。此外,尽管devtools::install_local()devtools::install()安装了 missing 软件包,但根据DESCRIPTION文件中的依赖关系,它不会 update 软件包。包装。

是否可以安装本地软件包,并根据软件包的DESCRIPTION文件更新相应的软件包-类似于从CRAN安装软件包时install.packages()的工作方式?我已经探索了toolsdevtools包中的其他选项以及其他SO帖子,但是还没有找到任何可以满足我所寻找内容的东西。

我使用packageDescription()installed.packages()进行了整理,比较了软件包的要求和已安装的软件包,并进行了相应的更新,但不知道是否有更优雅的解决方案已经在那里。

1 个答案:

答案 0 :(得分:0)

devtools::dev_package_deps()devtools::update_packages()结合起来可能适合您。

dependency_list <- devtools::dev_package_deps()
devtools::update_packages(dependency_list$package, dependencies=TRUE)

在R包的仓库中调用时,将检查包依赖关系 和过时的更新。与RStudio的“软件包”面板中的“更新”按钮不同, 上面的代码将(a)从CRAN和远程源(如GitHub和 (b)不要尝试安装与当前软件包无关的本地软件包。

仅当在有效的程序包中运行时,此功能才起作用。它读取包的枚举中的依赖项 DESCRIPTION文件。

我们将他的代码放入RStudio Add-In内,并将其分发到我们的OuhscMunge包中。这有助于我们大约10人的数据科学研究团队之间保持更加一致。

请注意remotes软件包的开发情况,该软件包“是devtools中install_*函数的轻量级替代。”