【问题标题】:Sonatype Nexus proxy for CRAN packages?用于 CRAN 包的 Sonatype Nexus 代理?
【发布时间】:2013-01-21 23:05:37
【问题描述】:

我们的组织使用 Sonatype Nexus 来管理工件,无论它们是我们开发的内部托管的东西,还是其他存储库(如 Apache 或类似存储库)的代理。大多数东西都是基于 JAR 的。

我的小组在 R 中完成了大部分工作,我们想知道是否有意义:1)将我们的内部代码部署为 Nexus 中的 R 包,以及 2)在 Nexus 中创建一个 CRAN 镜像的代理。我想这需要一些胶水代码,但我对 Nexus 不是很满意,所以我不太确定那会是什么样子。理想情况下,它可以让我们通过直接点击 Nexus 来安装 R 包,而不是先下载然后手动安装。

有人有建议或先例吗?

【问题讨论】:

  • Nexus 将托管任何类型的文件。问题是代理功能仅限于少数存储库格式(Maven、NuGet 等)。你知道 CRAN 存储库的格式吗? (我不熟悉)
  • 它似乎是它自己的自定义“格式”。它的工件是 *.tar.gz*.zip 文件,有一个目录结构和一个索引文件,说明存储库中可用的内容。
  • 是的,大多数存储库都具有这些功能。问题是兼容性...

标签: r nexus cran sonatype


【解决方案1】:

如何将您的内部压缩包放在一个(如果您愿意,仅供内部使用)URL,然后您可以将devtools::install_url 函数指向?

【讨论】:

  • 这行得通,这基本上就是我们现在所做的(添加了运行write_PACKAGES() 函数以使目录成为有效的类似 CRAN 的站点),但这对开发组没有帮助他们在 Nexus 中的所有依赖项。使用 Nexus/Maven 确实有一些优势,比如在一个地方明确地描述所有依赖项,无论它们是什么类型的工件。
【解决方案2】:

由于 Sonatype 采用了下面提到的社区插件,因此在默认安装中提供了对 CRAN 的 NXRM 3.20.0 支持。

对于较旧的 NXRM 版本,Nexus 社区有一个 plugin,它增加了对 CRAN 存储库的支持。你可以在GitHub找到它来自己安装。

【讨论】:

  • 是的 - 我们大约一年前开始使用该插件,它对我们来说效果很好。
【解决方案3】:

Nexus 现在从 3.20 版本开始原生支持 R 包

查看发行说明:https://help.sonatype.com/repomanager3/formats/r-repositories#RRepositories-RRepositoryGroups

我能够使用相同的自动化创建 R 存储库。

【讨论】:

    猜你喜欢
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 2015-05-18
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多