17

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

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

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

4

1 回答 1

4

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

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

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

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

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

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

于 2012-09-04T20:41:33.923 回答