【发布时间】:2016-01-15 17:15:03
【问题描述】:
我正在尝试将一些包移植到离线 (Windows) 计算机上的 R 安装。
从 CRAN(假设为 data.table),过程:1)在单独的在线计算机上下载 .zip 2)拇指驱动器 -> 离线计算机 3)通过 install.packages("....zip"...) 安装完全符合预期。
但是,当我尝试从 GitHub 安装时,此过程中断。
当我在 zip 文件上运行 install.packages(注意:我正在使用 type="binary" 和 repos=NULL;type="win.binary" 也不执行任何操作)时(通过转到包页面获得,例如 https://github.com/Rdatatable/data.table,并且使用“下载.zip”功能),出了点问题。
没有错误消息(设置 verbose=TRUE 没有任何新信息),并且包文件夹被添加到我的库中(即,当我导航到那里时,我可以看到名为“data.table-master”的文件夹),但是library(data.table) 导致错误:“没有名为 data.table 的包”。我还注意到,虽然从 CRAN 的安装以“成功解压缩包 data.table 并检查 MD5 总和”结束,但尝试 GitHub 安装时没有收到此类消息。
这里发生了什么?我在?install.packages 中尝试了所有可能的线索,但鉴于我并没有真正收到错误消息,因此很难诊断出究竟是什么问题。
更多背景:R 版本是 3.2.0。难以复制粘贴sessionInfo,因为那台计算机不在线,不确定还有什么相关的。
更新:
鉴于下面的@r2evans 的 cmets,我还尝试将 type="source" 与 install.packages 一起使用,但这也不起作用(同样的问题 - 尽管我的 @987654336 之一中有“data.table-master”文件夹@address,library(data.table) 给出没有这样的包的错误)。
不过,这次使用verbose=TRUE 确实获得了更多输出:
系统(cmd0):
C:/PROGRA~1/R/R-32~1.0/bin/x64/R CMD INSTALL1): 成功
'C:/PROGRA~1/R/R-32~1.0/bin/x64/R CMD INSTALL -l "C:\Users\Mike\Documents\R\win-library\3.2" "E:/data.table-master.zip"'
【问题讨论】:
-
从 GH 下载的包不是以“源”形式而不是“二进制”形式下载的吗?
-
@r2evans 我得试试看。鉴于 CRAN 和 GH 都生成 .zip 文件夹,我不能说我理解其中的区别。我最初的通行证是使用
type="both",但是当repos="NULL"时这是一个错误,所以我不会抓住这个。 -
R 通常在
zip文件中分发二进制包,在tar.gz文件中分发源包,但这并不意味着在zip文件中分发的所有内容都是二进制包。查看两种格式的另一个包(不是来自 GH),并在内部查看差异。 -
从 github 下载 zip 只是一个压缩文件夹,其中包含 repo 中的文件。
install_github从源代码下载并安装(这就是为什么您还必须安装开发工具才能使其工作)。也许令人困惑的是,当从 Windows(二进制)构建时,您还会得到一个 .zip 文件,可以用于安装包,因为这些文件已经通过 R CMD build/R CMD 检查,但那些不是您从 gethub 获取的相同 .zip 文件。这是问题的要点吗? -
@MichaelChirico 适用于二进制 .zip 包。对于源 .tar.gz 或来自 github 的文件夹,您需要安装 r 工具或为特定平台构建 r 包所需的任何东西
标签: r