是否有任何R包存储库管理工具?

Eri*_*lts 16 r repository package cran

我正在创建一个自定义R包存储库,并希望复制CRAN存档结构,从而将旧版本的包存储在src/contrib/Archive/packageName/目录中.我想install_version这里使用函数devtools(source here),但该函数依赖于具有类似CRAN的归档结构而不是所有的软件包版本src/contrib/.

是否有任何R包存储库管理工具可以帮助创建此目录结构和其他相关任务(例如更新Archive.rds文件)?

如果管理工具处理type存储库端的包逻辑以便我可以在Linux服务器上使用与本地Mac上相同install.packages()install_version()代码(也就是说我不必使用type="both"type="source"在本地安装苹果电脑).

Eri*_*lts 4

简短的回答: 并不是真正适合现成的使用。

长答案: 有几种工具可以用来管理他们的存储库,但还没有一个连贯的现成生态系统。

CRAN 维护者在这里保存了一组脚本来管理 CRAN 存储库,但尚不清楚它们如何协同工作,也不清楚需要哪些部分来更新包索引、运行包检查或管理目录结构。

tools::write_PACKAGES函数可用于更新包索引,但每次在存储库中添加、更新或删除包时都需要更新该索引。

M.eik Michalke 创建了这个roxyPackage ,它能够自动更新给定的存储库、安装它等。开发人员最近还添加了使用该功能让存档结构模仿 CRAN 的功能archive_structure。缺点是该软件包不在 CRAN 上,如果与devtools. 它也是全新的,尚未准备好广泛使用。

最后,我创建了一个小型 Rub​​y脚本,用于监视给定的存储库并在任何文件发生更改时更新包索引。但是,这是为我的特定组织工作的,需要进行重构以供外部使用。如果有人对此感兴趣,我可以使它更普遍。