R - "文件上的不完整块"是什么意思?

Gil*_*lly 7 r package

我正在使用RStudio,我正在尝试将packrat用于我当前的项目.我单击"使用此项目的包装"复选框,然后按确定,我从控制台获得以下输出:

    > packrat::init()
Initializing packrat project in directory:
- "/Users/Ash/Dropbox/Uni/2014/Thesis/Code/R"

Adding these packages to packrat:
            _         
    packrat   0.4.0.12

Fetching sources for packrat (0.4.0.12) ... Error in snapshotSources(project, activeRepos(project), allRecordsFlat) : 
  Errors occurred when fetching source files:
Error in untar2(tarfile, files, list, exdir, restore_times) : 
  incomplete block on file
Run Code Online (Sandbox Code Playgroud)

我找不到这个错误,但基于这个代码(搜索错误字符串,文件上的不完整块),这似乎与意外的文件长度/大小有关.

我认为下载可能已损坏?但我已多次尝试过.

或许我没有正确的权限?但是项目文件应该没有问题.

还有其他人有这个问题吗?

Yar*_*min 5

我认为下载可能已损坏?但我已经尝试过多次了。

是的。下载可能已损坏,或者根据R 帮助邮件列表中的此线程,该问题可能是由服务器本身损坏的包引起的。对于后一种情况,可以通过选择不同的镜像来下载包来解决。

注意我将描述一个解决方案,它使用 R 控制台而不是 Rstudio GUI,因为我曾经以这种方式安装软件包。所描述的方法也可能适用于从 GUI 进行软件包安装。

当您通过执行以下命令从 R 控制台安装包时:

> install.packages("<package_name>")
Run Code Online (Sandbox Code Playgroud)

您将看到可供选择的可用镜像列表:

 1: 0-Cloud [https]                2: Austria [https]
 3: Chile [https]                  4: China (Beijing 4) [https]
 ...
Run Code Online (Sandbox Code Playgroud)

只需选择另一个(最好是靠近您的位置,以便更快地下载)。


如果您没有看到这样的选择,但下载立即开始,则您已经配置了默认镜像(例如 Rstudio 自动设置https://cran.rstudio.com/为默认镜像)。您可以通过发出以下命令来检查您选择的镜像:

> getOption("repos")["CRAN"]
                       CRAN
"https://cran.rstudio.com/"
Run Code Online (Sandbox Code Playgroud)

要重置默认镜像,您可以使用以下命令:

> r <- getOption("repos")
> r["CRAN"] <- "@CRAN@"
> options(repos=r)
Run Code Online (Sandbox Code Playgroud)

现在,当您尝试安装新软件包时,您可以如上所述选择另一个镜像。