【问题标题】:Did the subdirectory structure of package repositories change as of R 2.15.2?自 R 2.15.2 起,包存储库的子目录结构是否发生了变化?
【发布时间】:2012-10-31 11:03:47
【问题描述】:

有点尴尬/不可行,但由于我从“纯用户”转变为“初学者-开发人员”的时间不长,所以当新的 R版本出来了 - 直到今天(我觉得我应该养成这个习惯);-)

但我不确定假设的更改是否真的发生了,因为我在第一次看到 R R 2.15.2 的 CHANGELOG 时找不到任何关于它的信息:

实际问题

包存储库的(子目录)结构是否可能从

./bin/windows/contrib/2.xx/

./src/contrib/2.xx/ 甚至./src/contrib?

或者至少 PACKAGES 文件现在需要保存在此处:./src/contrib/PACKAGES?

背景资料

直到 2.15.1 版,以下路径可用于从我的本地包存储库安装包:

path.repos  <- "L:/R/packages"
repos       <- file.path("file://", path.repos)

函数contrib.url 将采用repos 并将其展开到正确的子目录:

> contrib.url(repos)
[1] "file:///L:/R/packages/bin/windows/contrib/2.15"

但是当我尝试运行 install.packages() 时,我收到 R 2.15.2 的以下错误:

> install.packages("mypkg", 
+     lib=file.path(R.home(), "library"),
+     repos=repos,
+     type="win.binary"
+ )
Error in read.dcf(file = tmpf) : cannot open the connection
In addition: Warning message:
In read.dcf(file = tmpf) :
  cannot open compressed file 'L:/R/packages/src/contrib/PACKAGES', probable reason 'No such file or directory'
> 

当我对 R 2.15.1 做同样的事情时,一切都很顺利。

尽职调查

CHANGELOG 中有一些关于存储库的参考资料,但我发现的唯一部分给我一些证据表明发生了假设的变化是这样的:

包安装

对于 Windows 或 Mac OS X 二进制包安装,install.packages() 将检查源包是否在相同的存储库中可用,并报告它是否是更高版本或有源包但没有二进制包可用的。

再次查看official documentation 并得到一个想法,可能arg type 没有正确传递给contrib.url(),因为在我看来install.package() 正在寻找type="source" 包的地方?

【问题讨论】:

  • @mnel:感谢您的指点。更新我的 SO 技能的好机会;-) 在这种情况下推荐的行为是什么?我觉得我已经为您链接到的问题添加了更多细节,但我认为重复是不可取的。我应该将我的问题编织到另一个问题中,还是我只是等到我的问题关闭,但对于任何寻找它的人来说仍然存在?
  • 我会标记为重复关闭。

标签: r repository cran


【解决方案1】:

这个特定的错误与mine 不同。

此问题与检查 install.packages() 现在在安装之前运行有关。正如Rappster所说,它tries to find a source package to compare the binary version with

对于 Windows 或 Mac OS X 二进制包安装,install.packages() 将检查源包是否在相同的存储库中可用,并报告它是否是更高版本或有源包但没有二进制包可用。

因此,压缩此消息的一种简单方法是创建R/src/contrib 目录并在该目录中运行tools::write_PACKAGES() 以创建(一个空的)PACKAGES 文件。

当然,您在 2.15.1 中没有收到此消息的原因是它没有执行 2.15.2 执行的检查(请参阅上面的 R NEWS 引用)。

我已经提交了bug report 我的问题。还没有消息。也可以将其发布到 R 邮件列表。

【讨论】:

    猜你喜欢
    • 2017-07-29
    • 2014-10-19
    • 2016-08-21
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多