我有一个我要安装的本地软件包,安装后,它还会根据软件包的DESCRIPTION
文件中定义的依赖项来更新/比较当前安装的软件包。 install.packages()
可以在repos = NULL
时用于安装本地文件,但不会相应地更新/安装依赖项。此外,尽管devtools::install_local()
和devtools::install()
安装了 missing 软件包,但根据DESCRIPTION
文件中的依赖关系,它不会 update 软件包。包装。
是否可以安装本地软件包,并根据软件包的DESCRIPTION
文件更新相应的软件包-类似于从CRAN安装软件包时install.packages()
的工作方式?我已经探索了tools
和devtools
包中的其他选项以及其他SO帖子,但是还没有找到任何可以满足我所寻找内容的东西。
我使用packageDescription()
和installed.packages()
进行了整理,比较了软件包的要求和已安装的软件包,并进行了相应的更新,但不知道是否有更优雅的解决方案已经在那里。
答案 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_*
函数的轻量级替代。”