我想创建一个本地R包存储库,以便我公司的用户可以从中安装包,系统管理员可以定期更新本地存储库。目前拒绝访问CRAN镜像。
有一种简单的方法吗?
答案 0 :(得分:42)
是的,可以轻松设置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服务存储库(但是也适用于其他或本地托管)。
答案 1 :(得分:19)
答案 2 :(得分:3)
包miniCRAN也为此提供了很好的功能。关键的好处是你不需要一个完整的镜子,但可以设置一个" mini" CRAN的镜像,只包含您需要的软件包分发,包括它们的依赖项。