我想创建一个本地 R 包存储库,以便我公司的用户可以从中安装包,并且系统管理员可以定期更新本地存储库。目前拒绝访问 CRAN 镜像。
有没有一种简单的方法可以做到这一点?
是的,CRAN 的副本或带有本地包的 repo 都很容易设置。大概您希望 Windows 使用此功能,请执行以下操作:
R/
R/bin/windows/contrib/2.11
. 如果您需要支持其他(早期)版本,只需在目录旁边创建目录2.10
, , ... 。2.9
2.11
将您需要的包放入目录(例如2.11
),然后切换到该目录并运行以下命令为存储库生成PACKAGES
和PACKAGES.gz
文件:
tools::write_PACKAGES(".", type="win.binary")
这就是它的全部内容 - 现在您可以通过指向给定命令的地址来访问存储库,例如
update.packages(repos="http://my.local.server/R", ask=FALSE)
我什至会R/zzz.R
为本地软件包做这些,以便它们自行更新。
大约五年后编辑:drat包现在自动化了很多,如果您还使用 GitHub 通过 http/https 为存储库提供服务(但对于其他或本地托管也很有用),它尤其闪耀。
阅读管理员指南部分。
miniCRAN包也为此提供了强大的功能。关键优势是您不需要完整镜像,但可以设置 CRAN 的“迷你”镜像,仅包含您需要的包分发,包括它们的依赖项。