我正在创建一个自定义的R包存储库,并希望复制CRAN归档结构,从而将旧版本的包存储在src/contrib/Archive/packageName/目录中。我想使用devtools (源here)中的install_version函数,但该函数依赖于具有类似CRAN的归档结构,而不是将所有包版本都包含在src/contrib/中。
是否有任何R包存储库管理工具可以促进此目录结构的创建和其他相关任务(例如,更新Archive.rds文件)?
如果管理工具在存储库端处理包type逻辑,这样我就可以在Linux服务器上使用与本地Mac上相同的install.packages()或install_version()代码(即,在Mac上本地安装时,我不必使用type="both"或type="source" ),那就更好了。
发布于 2012-09-05 04:41:34
简短回答:并不是真正的现成使用。
长篇回答:有几个工具可以用来管理他们的repo,但还没有一个连贯的现成生态系统。
CRAN维护者保留了一堆脚本here来管理CRAN存储库,但不清楚它们是如何协同工作的,也不清楚需要哪些部分来更新包索引、运行包检查或管理目录结构。
tools::write_PACKAGES函数可用于更新包索引,但每次从存储库中添加、更新或删除包时,都需要更新该索引。
M.eik Michalke已经创建了roxyPackage package,它能够自动更新给定的存储库,安装它,等等。开发人员最近还添加了使用archive_structure函数模拟CRAN的归档结构的功能。缺点是该包不在CRAN上,如果与devtools集成可能会更好。它也是全新的,还没有准备好广泛使用。
最后,我创建了一个小的Ruby script,它监视给定的存储库,并在任何文件发生更改时更新包索引。然而,这是为我的特定组织工作的,并且需要重构以供外部使用。如果有人对它感兴趣,我可以让它变得更通用。
https://stackoverflow.com/questions/12146925
复制相似问题