gpt4 book ai didi

r - 从本地仓库安装具有依赖项的包时出错

转载 作者:行者123 更新时间:2023-12-02 03:16:46 25 4
gpt4 key购买 nike

当它们具有依赖项时,我在离线安装包时出错。这与 this question 非常相似.我已按照那里的说明进行离线安装。所以我已经将所有 CRAN 包安装到一个目录并创建了 PACKAGES 文件。

但该答案中概述的过程似乎存在一个微妙的错误

我可以使用下面的命令在 Linux 上从本地仓库安装一个包,没有问题,即不指定仓库:

install.packages("/software/r_packages/src/contrib/ZillowR_0.1.0.tar.gz",     lib="/usr/lib64/R/library")

但是,如果我想获取依赖项,我需要使用例如将其指向存储库及其 PACKAGES 文件

install.packages("/software/r_packages/src/contrib/ZillowR_0.1.0.tar.gz",     lib="/usr/lib64/R/library", repos="file:///software/r_packages/")

但是如果我这样做,我会得到错误:

Warning message:
package ‘/software/r_packages/src/contrib/ZillowR_0.1.0.tar.gz’ is not available (for R version 3.2.3)

我已经测试并确认它正在读取 PACKAGES 文件,因为如果我在 PACKAGES 中的 ZillowR 条目中输入错字,我会收到一条错误消息,表明它可以读取无法正确解析条目。

最佳答案

这里应该为您工作的是以下内容:

install.packages(pkgs = "ZillowR", type = "source", 
lib = "/usr/lib64/R/library",
contriburl = "file:///software/r_packages/")

install.packages() 的参数可能非常多,所有默认设置都配置为与从 CRAN(或其他远程存储库)安装的包一起使用。要解压缩这里发生的事情,请考虑使用以下代码从 CRAN 安装 ZillowR:

install.packages(pkgs = "ZillowR")

这是设置了很多默认值,所以你实际上是在调用:

install.packages(pkgs = "ZillowR", lib = .libPaths()[1], 
repos = getOption("repos"),
contriburl = contrib.url(repos, type),
type = getOption("pkgType"))

两个关键的默认值调用一些全局选项,在我的安装中设置为:

> getOption("repos")
CRAN CRANextra
"https://cloud.r-project.org" "http://www.stats.ox.ac.uk/pub/RWin"
> getOption("pkgType")
[1] "both"

您需要(可能)克服这些默认设置才能进行本地安装,要克服的关键是 contriburl 的值(它继承自 repos。知道这一点后,您的直觉似乎(正确地)遵循了 installing a local source package 的说明,例如:

install.packages(pkgs = "/software/r_packages/src/contrib/ZillowR_0.1.0.tar.gz", repos = NULL, type = "source")

但是 install.packages() 的行为在那里完全不同,因为 pkgs 参数需要源压缩包的 文件名 (当 repos 并因此 contriburlNULL 时)。

对于类似本地 CRAN 的存储库,您实际上想要将 pkgs 设置为 包名称 并将 contriburl 设置为本地存储库小路。作为引用这里的 the relevant section of the docs对于 contriburl:

contriburl URL(s) of the contrib sections of the repositories. Use this argument if your repository mirror is incomplete, e.g., because you burned only the ‘contrib’ section on a CD, or only have binary packages. Overrides argument repos. Incompatible with type = "both".

最后一句说明了您(可能)需要设置 type = "source" 的原因。

关于r - 从本地仓库安装具有依赖项的包时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36496819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com