对于没有Internet的离线Linux机器,安装具有大量依赖关系的R包是一场噩梦。我在SE中发现了一些关于如何创建本地文件夹,复制所需包zip文件以及使用'install.packages'进行安装的帖子。
但是,查找,下载和上传大量软件包到离线服务器是一项耗时的工作。所以,我想知道如何下载所有CRAN软件包的整个zip文件,这样我就可以将它们放在我本地离线机器的http web服务器目录中,就像真正的存储库一样。大小可能会在200 GB左右,但对于企业环境,我认为它应该是有意义的。
我找到了一个指南here,讨论如何成为官方的CRAN镜像,但我不会成为官方的公共镜像。
请指教。 提前致谢
答案 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
参数,以将其保存到公司目录。