【问题标题】:How to install package when HTTP status was '404 Not Found'当 HTTP 状态为“404 Not Found”时如何安装包
【发布时间】:2014-05-21 13:30:49
【问题描述】:

我在使用 fields 包时遇到了一些困难。

sessioninfo()
R version 3.1.0 (2014-04-10)
Platform: x86_64-apple-darwin13.1.0 (64-bit)

locale:
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base    

形成 url 一切似乎都很好,fields 取决于 > 或 = 到 3.0

我尝试使用install.packages 下载包,但我得到了一个我以前从未见过的相当奇怪的结果:

trying URL 'http://cran.ma.imperial.ac.uk/bin/macosx/mavericks/contrib/3.1/fields_7.1.tgz'
Error in download.file(url, destfile, method, mode = "wb", ...) : 
  cannot open URL 'http://cran.ma.imperial.ac.uk/bin/macosx/mavericks/contrib/3.1/fields_7.1.tgz'
In addition: Warning message:
In download.file(url, destfile, method, mode = "wb", ...) :
  cannot open: HTTP status was '404 Not Found'
Warning in download.packages(pkgs, destdir = tmpd, available = available,  :
  download of package ‘fields’ failed

我也尝试过使用 URL 直接下载 7.16.9.1(mavericks) 的文件:

packageurl <- "http://cran.r-project.org/bin/macosx/mavericks/contrib/3.1/fields_6.9.1.tgz"
> install.packages(packageurl, contriburl=NULL, type="source")
Warning message:
package ‘http://cran.r-project.org/bin/macosx/mavericks/contrib/3.1/fields_6.9.1.tgz’ is not available (for R version 3.1.0) 

> packageurl <- "http://cran.r-project.org/bin/macosx/contrib/3.1/fields_7.1.tgz"
> install.packages(packageurl, contriburl=NULL, type="source")
Warning message:
package ‘http://cran.r-project.org/bin/macosx/contrib/3.1/fields_7.1.tgz’ is not available (for R version 3.1.0) 

并从解压的.tar 文件中运行所有.R 文件

sapply(list.files(pattern="[.]R$", path="........fields/R/", full.names=TRUE), source)

但如果我这样做,那么函数将不起作用,例如

> rdist(c(1,1))
Error in .Fortran("radbas", PACKAGE = "fields", nd = as.integer(d), x1 = as.double(x1),  : 
  "radbas" not available for .Fortran() for package "fields"

问题 - 字段不适用于 R 3.1 似乎很奇怪,因为它是一个被许多人大量使用的包,有什么想法可以解决这个问题吗?

【问题讨论】:

    标签: r package cran


    【解决方案1】:

    在为 Win 10、64 位安装 R 3.4.0 后,我遇到了这个问题。无法解决它,所以我回滚到 3.3.3,现在它又可以正常工作了。

    在执行此操作之前,我尝试删除 RStudio 用户设置和 R 包库(如果问题是由损坏的包引起的)。

    【讨论】:

    • 我也有同样的问题,但即使出现此警告消息,似乎仍然可以安装软件包。
    • 我也有这个问题,但是使用 R 而不是 RStudio 安装包仍然有效。
    • 我最近在使用 Windows 操作系统时遇到了同样的问题。我只是使用 R 而不是 R Studio 来安装 Rcpp,一切都很好。
    • @jb123 上面使用 R 而不是 RStudio 安装的解决方案在 MacOS (Sierra) 中也适用于我
    【解决方案2】:

    似乎http://cran.ma.imperial.ac.uk 的存储库搞砸了。有fields_6.9.1.tgz(你可以去http://cran.ma.imperial.ac.uk/bin/macosx/mavericks/contrib/3.1/fields_6.9.1.tgz查看),但是在PACKAGES文件(install.packages用来查找包的url)有:

    包:字段 版本:7.1 标题:空间数据工具 取决于:R (>= 3.0)、方法、垃圾邮件、地图 内置:R 3.1.0; x86_64-apple-darwin13.1.0; 2014-05-20 04:58:37 UTC; Unix 拱门:fields.so.dSYM

    这就是你得到 404 错误的原因。

    如果您想手动安装,您需要下载文件并从本地文件安装或使用

    # cran got 7.1
    packageurl <- "http://cran.r-project.org/bin/macosx/mavericks/contrib/3.1/fields_7.1.tgz"
    # your mirror got 6.9.1
    packageurl <- "http://cran.ma.imperial.ac.uk/bin/macosx/mavericks/contrib/3.1/fields_6.9.1.tgz"
    library(devtools)
    install_url(packageurl)
    

    我认为这是暂时的问题,在某个时间点会出现正确的文件。


    Now you can do it with base R:

    R 3.1.1 中的更改
    新功能

    • install.packages(repos = NULL) 现在接受 http:// 或 ftp:// 包存档的 URL 以及文件路径,并将下载为 必需的。在大多数情况下 repos = NULL 可以从扩展中推导出来 网址。

    【讨论】:

    • @user1320502 感谢 Hadley :D 那个包里有很多很酷的东西。
    【解决方案3】:

    在 mac Sierra 上更新到 R 3.4.1 时,我遇到了同样的问题。当我在首选项/包中更改 CRAN 镜像时问题已解决

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-27
      • 1970-01-01
      • 2020-03-26
      • 1970-01-01
      • 2018-09-07
      相关资源
      最近更新 更多