在CRAN中维护和使用ARCHIVE的正确方法,如存储库

时间:2016-01-18 06:04:16

标签: r repository package cran

我希望为我的R包创建一个类似CRAN的存储库。我在包miniCran寻找实例。但是我还需要:

  1. 保存并整理归档所有以前的版本(源代码和二进制代码),以便我可以
  2. 有一种干净简单的方法可以恢复到以前的包版本,存储在存档中。基本上取消归档(=将其移出存档,并更新PACKAGES索引文件)
  3. 有没有正确的方法呢?

1 个答案:

答案 0 :(得分:1)

这是drat package的用途。 "drat for Package Authors" vignette可以很好地概述您在此处所做的工作。您可以远程创建本地drat存储库或托管其中一个,例如GitHub(这是drat默认的)。 (它不是一个迷你CRAN,而是一个兼容R的存储库,允许您使用install.packages()安装软件包。)

基本上,要构建一个本地drat存储库,您只需执行以下操作:

library("drat")
initRepo(name = "drat", basepath = "~/git")
insertPackage("myPkg_0.5.tar.gz", "~/git/drat")

这会将本地包tarball添加到本地drat存储库。默认行为是将所有tarball保留在一个顶级目录中。 install.packages()只能看到最新的(即每个包的最高版本的tarball)。但是,可以选择创建Archive目录。该命令看起来基本相同:

insertPackage("myPkg_0.5.tar.gz", "~/git/drat", action = "archive")

这会将旧版本移动到类似CRAN的存档文件夹,只在主目录中保留新版本。

这并不能解决将存储库软件包“恢复”到以前版本的问题,主要是因为drat遵循CRAN的理念,即您永远不想更改存储库的历史记录。使用Archive选项,您始终可以直接从存档中安装,而无需更改主drat文件夹中的内容。