我希望为我的R包创建一个类似CRAN的存储库。我在包miniCran
寻找实例。但是我还需要:
有没有正确的方法呢?
答案 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文件夹中的内容。