如何下载整个CRAN存储库?

时间:2016-08-20 06:54:27

标签: r repository cran

对于没有Internet的离线Linux机器,安装具有大量依赖关系的R包是一场噩梦。我在SE中发现了一些关于如何创建本地文件夹,复制所需包zip文件以及使用'install.packages'进行安装的帖子。

但是,查找,下载和上传大量软件包到离线服务器是一项耗时的工作。所以,我想知道如何下载所有CRAN软件包的整个zip文件,这样我就可以将它们放在我本地离线机器的http web服务器目录中,就像真正的存储库一样。大小可能会在200 GB左右,但对于企业环境,我认为它应该是有意义的。

我找到了一个指南here,讨论如何成为官方的CRAN镜像,但我不会成为官方的公共镜像。

请指教。 提前致谢

1 个答案:

答案 0 :(得分:2)

您可以使用函数available.packages查找可用的包。

pkgnames <- available.packages()[,1]

如果你喜欢网页抓取,你可以练习如下。

library(rvest)
pkgs <- read_html("https://cran.r-project.org/web/packages/available_packages_by_name.html")
tab <- html_nodes(pkgs, "table") %>% html_table(fill = TRUE)

pkgnames <- tab[[1]][1]$X1
pkgnames <- pkgnames[nchar(pkgnames)>0]

除非您想要安装(或下载)很多套餐,否则请不要运行这些内容!!

#sapply(pkgnames, install.packages)
#sapply(pkgnames, install.packages)

您可以运行此行以显示其有效。

sapply(pkgnames[1:2], install.packages)

您可以将install.packages替换为download.packages以及destdir参数,以将其保存到公司目录。