创建本地R包存储库

时间:2010-05-25 14:37:22

标签: r r-package

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

有一种简单的方法吗?

3 个答案:

答案 0 :(得分:42)

是的,可以轻松设置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")

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

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

    我甚至在R/zzz.R中为本地包做了这些事情,以便他们自己更新。

    编辑大约五年以后drat包现在自动执行了很多这样的工作,特别是如果您还使用GitHub通过http / https服务存储库(但是也适用于其他或本地托管)。

答案 1 :(得分:19)

答案 2 :(得分:3)

miniCRAN也为此提供了很好的功能。关键的好处是你不需要一个完整的镜子,但可以设置一个" mini" CRAN的镜像,只包含您需要的软件包分发,包括它们的依赖项。