只下载包和所有依赖关系的源

我想知道是否有一个方法来使用install.packages()或其他相关的功能,以执行以下操作:只下载指定的包及其所有依赖关系的源(即tar.gz文件)到指定的文件夹(在Windows上) 。

这样做的一个原因是:说我有一个Linux帐户,没有启用互联网访问。为了在Linux机器上安装软件包,我首先在我的Windows机器上下载所有需要的源,然后ftp他们到Linux机器,并安装在Linux机器上使用

install.packages('/home/me/R/Packages/blah.tar.gz',repos = NULL)
现在有更好的选择为这个在工具包附带base R:package_dependencies()。例如,从@ sebastian-c的答案和这个 recent Q&A相关的用例。

utils包中有一个未导出的getDependencies()函数。我没有研究它是如何工作,但结合使用@ Dirk的答案应该让你大部分的方式在那里。

基本上虽然,它似乎你使用它像:

utils:::getDependencies(pkgs,dependencies,available,lib)

其中pkgs是要安装的软件包的字符向量,依赖关系是您想要的依赖关系类型的字符向量(Depends,Enhances等),available.packages()的输出可用,lib是软件包的库位置其中依赖性被评估。

如果你调试install.packages()它基本上是做getDependencies()步骤然后@ Dirk的download.packages()步骤,然后才真正开始安装任何东西。

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...