从文档中并不清楚如果在 install.packages 中指定了多个存储库会出现什么行为。我的直觉告诉我,它将尝试第一个存储库,如果找不到包,它将尝试第二个存储库,依此类推。不幸的是,情况似乎并非如此。我看到的是,只尝试了第一个,并返回错误(因为存储库不包含该包)。与其他条目相比,“CRAN”条目的处理方式也不够清晰。
我想要的是一个带有我自己的软件包(首先指定)的本地 CRAN,以及带有较大软件包集(第二个指定)的全局 CRAN,并且能够从本地安装,除非找不到该软件包(并且在该软件包中)情况下,它会回落到全局)
这是我得到的错误
> setRepositories(graphics = FALSE, ind=NULL, addURLs=c(ciccio="file:qs-cran", CRAN="https://mran.microsoft.com/snapshot/2018-08-01"))
> install.packages("zizzio")
Error in read.dcf(file = tmpf) : cannot open the connection
In addition: Warning messages:
1: package ‘zizzio’ is not available (for R version 3.5.3)
2: In read.dcf(file = tmpf) :
cannot open compressed file 'qs-cran/bin/macosx/el-capitan/contrib/3.5/PACKAGES', probable reason 'No such file or directory'
> install.packages("zizzio", type="source")
Warning message:
package ‘zizzio’ is not available (for R version 3.5.3)
我认为你的问题是你的本地存储库没有PACKAGES
文件。存储库中包含包的每个目录must拥有这个文件,因为 R 通过它知道可用的内容。因此,R 首先尝试该存储库,当它需要的文件不存在时会遇到错误,并在查看下一个存储库之前停止。
官方手册《R安装与管理》描述存储库的必要条件 https://cran.r-project.org/doc/manuals/r-release/R-admin.html#Setting-up-a-package-repository.
您可以创建PACKAGES
文件:
tools::write_PACKAGES(
"qs-cran/bin/macosx/el-capitan/contrib/3.5",
type = "mac.binary"
)
之后,您的存储库应如下所示:
qs-cran/
└ bin/macosx/el-capitan/contrib/3.5/
├ PACKAGES
└ zizzio_1.0.0.zip
从那时起,每当您添加、更改或删除包时,请使用:
tools::update_PACKAGES(
"qs-cran/bin/macosx/el-capitan/contrib/3.5",
type = "mac.binary"
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)