mac brew 遇到无法下载的依赖可以这样解决

主要是因为brew 安装依赖包不成功,如下错误:

第一种:

curl:(56)SSLRead()returnerror-36Error:An exception occurred within a child process:DownloadError:Failedtodownload resource"cmake"Download failed:https://github.com/Kitware/CMake/releases/download/v3.13.3/cmake-3.13.3.tar.gz

第二种:

curl:(52)Emptyreply from serverError:An exception occurred within a child process:DownloadError:Failed to download resource"nghttp2"Download failed:https://github.com/nghttp2/nghttp2/releases/download/v1.35.1/nghttp2-1.35.1.tar.xz

第三种:

curl:(35)Server aborted theSSLhandshakeError:An exception occurred within a child process:DownloadError:Failed to download resource"webp"Download failed:https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.2.tar.gz

解决问题:

mac brew 下载缓存目录:

~/Library/Caches/Homebrew

或者:

~/Library/Caches/Homebrew/Cask

打开后将看到“downloads”目录,里面就是安装依赖时下载的缓存文件,downloads文件夹同层级外面是downloads里面的文件替身,查看终端描述的是那个依赖包没有下载成功,自己用其他工具下载下来,一定要是相同版本,一般情况下直接复制终端提示的下载地址就可以了。

先下载好依赖包

查找文件名

进入brew缓存目录,查看哪个文件,接近后缀的位置,是对应要下载的依赖包名称,文件后缀为:.incomplete,大概是因为还没有下完整所以显示临时文件后缀。

如:

6b825e455816e590eb425b836e57003f1b1894513fd97b45dac8c9ee5053cf08--nghttp2-1.35.1.tar.xz.incomplete

修改为原来随机生成的那个文件名称,只是吧后缀删除掉,使其成为正常可被解压的文件名,注意不要随便更改随机文件名称!

然后再次在终端运行安装依赖包命令,brew会识别到已经下载完毕,直接进行安装了。

Downloading https://github.com/nghttp2/nghttp2/releases/download/v1.35.1/nghAlready downloaded:/Users/xxx/Library/Caches/Homebrew/downloads/6b825e455816e590eb425b836e57003f1b1894513fd97b45dac8c9ee5053cf08--nghttp2-1.35.1.tar.xz

当你找不到.incomplete文件时,是因brew还没开始生成下载的临时文件,那你就再次运行一下就可以了。

但凡是也就有意外,不幸的你跟我一样,发现还是报错了:

$ brew install dart

==> Installing dart from dart-lang/dart

==> Downloading https://storage.googleapis.com/dart-archive/channels/stable/release/2.4.1/sdk/dartsdk-macos

curl: (56) LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54

Error: An exception occurred within a child process:

  DownloadError: Failed to download resource "dart"

Download failed: https://storage.googleapis.com/dart-archive/channels/stable/release/2.4.1/sdk/dartsdk-macos-x64-release.zip

那该怎么解决?我们给命令加个 -v 打印命令的详细日志看看:


注意到这条信息:

/usr/bin/curl -q --show-error --user-agent Homebrew/2.1.9-21-g625a780\ \(Macintosh\;\ Intel\ Mac\ OS\ X\ 10.14.2\)\ curl/7.54.0 --fail --location --remote-time --continue-at 0 --output /Users/shockerli/Library/Caches/Homebrew/downloads/4d2412a5d84521393e0e1ecdce0662569e13c2c47762093a760939fa9dd4a917--dartsdk-macos-x64-release.zip.incomplete https://storage.googleapis.com/dart-archive/channels/stable/release/2.4.1/sdk/dartsdk-macos-x64-release.zip

我们看到 Homebrew 下载 dart 的缓存地址为:

/Users/shockerli/Library/Caches/Homebrew/downloads/4d2412a5d84521393e0e1ecdce0662569e13c2c47762093a760939fa9dd4a917--dartsdk-macos-x64-release.zip.incomplete

XXX.incomplete 表示下载未完成,但这是 Homebrew 期望的下载文件路径。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。