如何下载整个CRAN存储库?

如何下载整个CRAN存储库?,r,repository,cran,R,Repository,Cran,对于没有Internet的脱机linux机器,安装具有大量依赖项的R包是一场噩梦。我在SE中发现了几篇讨论如何创建本地文件夹、复制所需的包zip文件以及使用“install.packages”进行安装的帖子 但是,查找、下载大量软件包并将其上载到脱机服务器是一项耗时的工作。因此,我想知道如何下载所有CRAN包的整个zip文件,以便将它们放在本地脱机机器的http web服务器目录中,并充当真正的存储库。它的大小可能会非常大,大约在200GB左右,但对于企业环境来说,我认为它应该是有意义的 我找到

对于没有Internet的脱机linux机器,安装具有大量依赖项的R包是一场噩梦。我在SE中发现了几篇讨论如何创建本地文件夹、复制所需的包zip文件以及使用“install.packages”进行安装的帖子

但是,查找、下载大量软件包并将其上载到脱机服务器是一项耗时的工作。因此,我想知道如何下载所有CRAN包的整个zip文件,以便将它们放在本地脱机机器的http web服务器目录中,并充当真正的存储库。它的大小可能会非常大,大约在200GB左右,但对于企业环境来说,我认为它应该是有意义的

我找到了一位导游,他正在讨论如何成为官方的克兰镜,但我不会成为官方的公共镜

请告知。
提前感谢

您可以使用功能
available.packages
查找可用的软件包

pkgnames <- available.packages()[,1]
您可以运行这一行来显示它的工作原理

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

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

只需使用
available.packages()
即可获得有关CRAN上所有可用软件包的信息。您不需要为此解析HTML页面。您的解决方案不下载软件包,而是安装它们。我在服务器计算机上没有internet访问权限。如果您将install.packages更改为download.packages()sapply(pkgnames,download.packages,destdir=“d:/desiredFolder”),我发现您的解决方案非常有用。此代码将把所有源zip文件下载到desiredFolder中。然后,我可以复制到我的服务器并将存储库设置为此文件夹,以便在本地安装所有存储库。此外,您需要在第一行pkgnames中添加括号是的,不确定您的工作服务器启用了什么,因此我编写了这两个。我编辑了括号输入错误。您仍然可以按照CRAN mirror howto的建议操作,而不必使镜像正式,只需在您的内部计算机上运行它。访问此链接,查看问题是否得到解决。按照@AchimZeileis的建议去做,然后镜像CRAN。最终,他们的服务器上的负载会减少,并且您可以在目录结构中探索和发现一些隐藏的宝石(如具有大量元数据的rds文件)。今年早些时候,我安装了一个本地/家庭CRAN mirror,让包安装在几毫秒内就完成了,这真是太棒了。您还可以选择性地镜像它(即,如果您没有Windows或macOS目录结构,则可以排除这些目录结构)。设置镜像似乎是解决此问题的更明智的方法。克兰说你必须每周镜像两次。(?)也许你的“公司环境”不允许你这么做?谢谢你们,我感谢你们的帮助。我一定会采纳你的建议。
#sapply(pkgnames, install.packages)
#sapply(pkgnames, install.packages)
sapply(pkgnames[1:2], install.packages)