28

我想直接从包源的 URL 安装包。我想这样做是为了让人们可以轻松地测试不应广泛(或永久)可用的软件包的预发布版本。 是一个类似的问题,但有所不同,因为它只描述了如何从本地文件而不是通用 URL 进行安装。

为了这个问题,我将使用boot包源的链接。特别阅读?install.packagespkgs论点的描述表明:

install.packages(
  "http://cran.r-project.org/src/contrib/Archive/boot/boot_1.3-7.tar.gz", 
  repos = NULL, type = "source"
)

然而,这失败了:

Warning in install.packages :
  installation of package 
  ‘http://cran.r-project.org/src/contrib/Archive/boot/boot_1.3-7.tar.gz’ 
  had non-zero exit status

建议将 URL 解释为包名称,而不是其位置。我们可以通过以下两步过程解决此问题:

download.file(
  "http://cran.r-project.org/src/contrib/Archive/boot/boot_1.3-7.tar.gz", 
  "boot"
)
install.packages("boot", repos = NULL, type = "source")

但我宁愿install.packages只调用一次来做到这一点;并且因为install.packages无论如何都能下载文件,我觉得这应该是可能的。

4

4 回答 4

26

install.packages从 3.1.1 开始,现在可以使用 http URL(还不是 https)。这对我有用:

install.packages("http://www.lepem.ufc.br/jaa/colorout_1.1-0.tar.gz", repos=NULL)

编辑:从 R 3.2.0 开始,https通过 libcurl 内置。现在应该可以了:

install.packages("https://github.com/hadley/devtools/archive/v1.7.0.tar.gz",
                 repos=NULL, method="libcurl")

编辑:从 R 3.2.2开始,https假设编译了 libcurl 支持,应该使用默认选项。

编辑 2016-04-20:下载托管在 S3 上的软件包可能会出现一些问题,但method='wget'目前似乎适用于这些问题。

于 2015-03-06T22:07:27.213 回答
10

请参阅?install_urldevtools 包中的内容。

于 2013-05-07T08:58:46.433 回答
3

为什么不将存储源包的目录设置为存储库?

这是一个示例(尽管您可能希望在该链接的代码中替换 )type="source"type="win.binary"

于 2013-05-07T07:21:19.563 回答
0

如果 url 是 github 存储库,请尝试:install_github()

例如


library(devtools)

install_github("DeveloperName/PackageName")

# e.g. install_github("cran/seoR")
于 2019-02-23T09:57:55.660 回答