我正在使用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)
我找不到这个错误,但基于这个代码(搜索错误字符串,文件上的不完整块),这似乎与意外的文件长度/大小有关.
我认为下载可能已损坏?但我已多次尝试过.
或许我没有正确的权限?但是项目文件应该没有问题.
还有其他人有这个问题吗?
我认为下载可能已损坏?但我已经尝试过多次了。
是的。下载可能已损坏,或者根据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)
现在,当您尝试安装新软件包时,您可以如上所述选择另一个镜像。