2024年4月15日月曜日

brew update で Error: Failed to download https://formulae.brew.sh/api/cask.jws.json! のようなエラがでてしまう場合の対処方法

PHPのバージョンが、8.3.6 / 8.2.18 が出たのでアップグレードしようとして、

brew upgrade php をしたところ、下記の様なエラーで止まってしまったので、いろいろ試してみました。

*以下、ターミナルアプリから実行したコマンドについては「青文字」で記載しています。

brew upgrade php
==> Fetching zstd
==> Downloading
https://ghcr.io/v2/homebrew/core/zstd/blobs/sha256:2028141683f55bffcd
curl: (35) Recv failure: Connection reset by peer                                   
Error: php: Failed to download resource "zstd"
Download failed: https://ghcr.io/v2/homebrew/core/zstd/blobs/sha256:2028141683f55bffcd0693b9e49eef1e3dabc1e184214cacb173ca9bd54dabc0

各種ライブラリ等が古いのかもしれないと思って、下記を実行するも止まる。

brew upgrade
==> Running `brew cleanup ripgrep`...
Removing: /opt/homebrew/Cellar/ripgrep/14.0.3... (13 files, 6.6MB)
==> Upgrading telnet
  294 -> 302 
Error: Cannot install telnet because conflicting formulae are installed.
  inetutils: because both install 'telnet' binaries

brew update
Error: Failed to download https://formulae.brew.sh/api/cask.jws.json!
Failed to download https://formulae.brew.sh/api/formula_tap_migrations.jws.json!
Failed to download https://formulae.brew.sh/api/cask_tap_migrations.jws.json!
  
brew --version
Homebrew 4.2.17

と Homebiew 自体は最新。

API からのインストールを無効化するオプション「HOMEBREW_NO_INSTALL_FROM_API」を設定


bashやzsh を使っているなら、ターミナルから下記を実行してから、

export HOMEBREW_NO_INSTALL_FROM_API=1

brew update
==> Updating Homebrew...
Already up-to-date.

brew upgrade
をすると問題なく終了

brew upgrade php
Warning: php 8.3.6 already installed

brew upgrade php@8.2
Warning: php@8.2 8.2.18 already installed

そして下記を参考に MAMP の PHP バージョンを更新できました。

参考情報

上記にいたるまでに試したこと


下記と同じ現象
https://github.com/Homebrew/brew/issues/15998

下記のように XCodeは入っている
xcode-select --install
xcode-select: note: Command line tools are already installed. Use "Software Update" in System Settings or the softwareupdate command line interface to install updates

brew doctor
Warning: Homebrew's "sbin" was not found in your PATH but you have installed
formulae that put executables in /opt/homebrew/sbin.
Consider setting your PATH for example like so:
  echo 'export PATH="/opt/homebrew/sbin:$PATH"' >> ~/.zshrc

rm -r "$(brew --cache)/api"
brew update
Error: Failure while executing; `/usr/bin/env /opt/homebrew/Library/Homebrew/shims/shared/curl --disable --cookie /dev/null --globoff --user-agent Homebrew/4.2.17\ \(Macintosh\;\ arm64\ Mac\ OS\ X\ 14.4.1\)\ curl/8.4.0 --header Accept-Language:\ en --fail --progress-bar --remote-time --output /Users/kitani/Library/Caches/Homebrew/api/formula.jws.json --location --disable --cookie /dev/null --globoff --show-error --user-agent Homebrew/4.2.17\ \(Macintosh\;\ arm64\ Mac\ OS\ X\ 14.4.1\)\ curl/8.4.0 --header Accept-Language:\ en --fail --progress-bar --compressed --speed-limit 100 --speed-time 5 https://formulae.brew.sh/api/formula.jws.json` exited with 35. Here's the output:
curl: (35) Recv failure: Connection reset by peer

brew --cache のフォルダに、下記でエラーのでた JSONをコピーしても問題が解決できない。

brew update
Error: Failed to download https://formulae.brew.sh/api/cask.jws.json!
Failed to download https://formulae.brew.sh/api/formula_tap_migrations.jws.json!
Failed to download https://formulae.brew.sh/api/cask_tap_migrations.jws.json!

結局新規インストールしようとしたが、
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
これも出来ない。

最終的に下記の情報で納得できました。

2024年4月15日 @kimipooh

0 件のコメント: