【问题标题】:How to install a package from a download zip file如何从下载的 zip 文件安装软件包
【发布时间】:2015-09-08 10:34:06
【问题描述】:

我已将此package 下载为 zip 文件。

是否可以使用此 zip 或解压缩版本从 R 控制台将其安装到特定路径?

install.packages("C:/Users/Desktop/rvest-master.zip', lib='C:/R/R-3.2.1',repos = NULL)

我输入了上一个命令,但没有工作

> setwd("C:/Users/Desktop/")
> unzip("rvest-master.zip")
> file.rename("rvest-master", "rvest")
[1] TRUE
> shell("R CMD build rvest")
Warning messages:
1: running command ' /c R CMD build rvest' had status 127 
2: In shell("R CMD build rvest") :
  'R CMD build rvest' execution failed with error code 127
> install.packages("rvest_0.2.0.9000.tar.gz", repos = NULL)
Installing package into ‘C:/Users/Documents/R/win-library/3.2’
(as ‘lib’ is unspecified)
Warning: invalid package 'rvest_0.2.0.9000.tar.gz'
Error: ERROR: no packages specified
Warning messages:
1: running command '"C:/R/R-3.2.1/bin/x64/R" CMD INSTALL -l "C:\Users\Documents\R\win-library\3.2" "rvest_0.2.0.9000.tar.gz"' had status 1 
2: In install.packages("rvest_0.2.0.9000.tar.gz", repos = NULL) :
  installation of package ‘rvest_0.2.0.9000.tar.gz’ had non-zero exit status

上一行是答案的结果

【问题讨论】:

  • “不工作”到底是什么意思?您收到错误消息了吗?
  • @cr1msonB1ade 请你告诉我我在命令中做错了什么?
  • 我会先修正你的引号(第一个是双引号,第二个是单引号),第二个我会尝试添加type='source'。您遇到什么错误?
  • shell() 命令不起作用,因为 R 不在您的系统搜索路径上。您可以在 R 中通过键入 Sys.getenv("PATH") 并查看是否包含您的 R 目录来检查这一点。如果没有,你需要添加它(instructions)然后重启R。

标签: r


【解决方案1】:

很难相信这没有一个清晰、简单和准确的答案。

  1. 您通过单击“下载为 zip”从 github 下载的 zip 是该存储库的一个包,它不是像 CRAN 托管的标准 R 源包格式。因此,适用于 CRAN 源 tar.gz 的方法不适用于这种 zip。
  2. 最简单的方法是使用devtools::install_local。如果 devtools 给你带来了太多的依赖,你可以使用remotes::install_local,它是真正的功能,并且依赖更少。

【讨论】:

    【解决方案2】:

    在 Windows 7 和 R 3.5.3 上,我必须解压缩 zip,将其重新打包为 .tar.gz,然后使用以下命令进行安装。安装 zip 时,R 不会对包进行索引。

    install.packages("C:/your-package.tar.gz", repos = NULL, type = "win.binary", lib="C:/Users/username/Documents/R/R-3.5.3/library")
    

    环境

    版本 _
    平台 x86_64-w64-mingw32
    拱 x86_64
    操作系统 mingw32
    系统 x86_64、mingw32
    状态
    专业 3
    次要 5.3
    2019 年
    03月
    第 11 天
    svn 版本 76217
    语言 R
    version.string R 版本 3.5.3 (2019-03-11) 绰号大真理

    【讨论】:

      【解决方案3】:

      如果这是包源的 zip,并且 R 核心 install.packages() 不起作用,那么您可以使用 devtools 包中的 install_local()

      我从 GitHub 安装包时经常这样做,因为通过我们的代理获取 curl 很痛苦。所以我下载源 zip 并像这样安装。

      【讨论】:

        【解决方案4】:

        试试install.packages('C:/Users/Desktop/rvest-master.zip', repos = NULL, type = "win.binary")。 (未经测试)

        【讨论】:

        • 效果很好。您也可以直接从 cran 复制链接地址。这是一个例子。 install.packages('https://cran.r-project.org/bin/windows/contrib/3.3/proxy_0.4-20.zip', repos = NULL, type = "win.binary")
        • 我非常怀疑这是否有效。 OP下载了一个githb repo zip,这是win二进制包,只有CRAN托管这种文件。
        【解决方案5】:

        您可以使用 devtools 包中的 install_local 方法。解压缩压缩文件并在路径参数中指定包含包的说明文件的文件夹,或者您也可以使用 subdir 参数。

        如果没有解释,我会发布一个例子......让我知道。

        【讨论】:

        • 不管它是否对 OP 有帮助,包括一个例子都会大大改善这个答案。
        【解决方案6】:

        您已经下载了一个包源的 zip。这不是包源的标准打包,也不是标准的 Windows 二进制文件(即,作为 .zip 分发的构建包,来自 CRAN)。

        对你来说最简单的事情是使用 devtools 直接从 Github 安装这个包:

        library("devtools")
        install_github("hadley/rvest")
        

        如果您决定在本地安装它,您需要解压缩包目录,使用R CMD build rvest 从命令行构建它,然后使用R CMD INSTALL 或使用您已经拥有的命令从 R 中安装(但已执行在构建的“tarball”上)。以下是您可以在 R 中执行所有这些操作的方法:

        setwd("C:/Users/Desktop/")
        unzip("rvest-master.zip")
        file.rename("rvest-master", "rvest")
        shell("R CMD build rvest")
        

        这将在当前目录中创建一个压缩包版本。然后你可以安装它

        install.packages("rvest_0.2.0.9000.tar.gz", repos = NULL)
        

        由于版本号已合并到 tarball 名称中,因此可能并不总是很清楚新文件的名称。您可以使用list.files() 获取新的压缩包。

        install.packages(list.files(pattern="rvest*.tar.gz"), repos = NULL)
        

        如果shell() 行给您这样的错误

        'R' 未被识别为内部或外部命令

        您需要确保 R 在您的 shell 路径中。你可以用类似的东西添加它

        Sys.setenv(PATH=paste(R.home("bin"), Sys.getenv("PATH"), sep=";"))
        

        【讨论】:

          【解决方案7】:

          下载package.tar.gz

          然后从命令行:

          R CMD INSTALL package.tar.gz
          

          【讨论】:

          • 但 OP 想要从 zip 安装,而不是 tar.gz
          • tar.gz 是默认安装 R 包。
          猜你喜欢
          • 1970-01-01
          • 2016-09-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-11-17
          • 2020-02-04
          • 1970-01-01
          • 2011-05-24
          相关资源
          最近更新 更多