46

我想创建一个本地 R 包存储库,以便我公司的用户可以从中安装包,并且系统管理员可以定期更新本地存储库。目前拒绝访问 CRAN 镜像。

有没有一种简单的方法可以做到这一点?

4

3 回答 3

47

是的,CRAN 的副本或带有本地包的 repo 都很容易设置。大概您希望 Windows 使用此功能,请执行以下操作:

  1. 在您的网络服务器上创建一个顶级目录,例如R/
  2. 在那里创建通常的层次结构:R/bin/windows/contrib/2.11. 如果您需要支持其他(早期)版本,只需在目录旁边创建目录2.10, , ... 。2.92.11
  3. 将您需要的包放入目录(例如2.11),然后切换到该目录并运行以下命令为存储库生成PACKAGESPACKAGES.gz文件:

    tools::write_PACKAGES(".", type="win.binary")

这就是它的全部内容 - 现在您可以通过指向给定命令的地址来访问存储库,例如

update.packages(repos="http://my.local.server/R", ask=FALSE)

我什至会R/zzz.R为本地软件包做这些,以便它们自行更新。

大约五年后编辑drat包现在自动化了很多,如果您还使用 GitHub 通过 http/https 为存储库提供服务(但对于其他或本地托管也很有用),它尤其闪耀。

于 2010-05-25T14:46:56.490 回答
19

阅读管理员指南部分

于 2010-05-25T14:47:20.203 回答
4

miniCRAN包也为此提供了强大的功能。关键优势是您不需要完整镜像,但可以设置 CRAN 的“迷你”镜像,仅包含您需要的包分发,包括它们的依赖项。

于 2016-11-23T12:22:53.777 回答