【问题标题】:Are there any R package repository management tools?是否有任何 R 包存储库管理工具?
【发布时间】:2012-08-27 17:49:43
【问题描述】:

我正在创建一个自定义 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")。

【问题讨论】:

  • 您可以在 R-devel 邮件列表中提出这个问题(如果您还没有这样做的话),他们最清楚。或者甚至可能直接来自 CRAN 维护者,即 Kurt。
  • 谢谢,我做到了。我会尽快发布答案。

标签: r repository package cran


【解决方案1】:

简答: 不适合现成的使用。

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多