Homebrewでbrew updateしたらerror:homebrew-core is a shallow clone.って出た。

不具合対処への奮闘
スポンサーリンク

Homebrewをアップデートしようと思って、brew updateコマンドを実行したらerrorが表示されました。

ここではその対処法についてまとめておこうと思います。

といっても、ターミナルに表示されたことをしただけですけどね。

スポンサーリンク

Error: homebrew-core is a shallow clone.

Homebrewをアップデートしようと、ターミナルからbrew updateコマンドを実行すると次のようなエラーメッセージが表示されました。

% brew update
Error:
  homebrew-core is a shallow clone.
To `brew update`, first run:
  git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
This restriction has been made on GitHub's request because updating shallow
clones is an extremely expensive operation due to the tree layout and traffic of
Homebrew/homebrew-core and Homebrew/homebrew-cask. We don't do this for you
automatically to avoid repeatedly performing an expensive unshallow operation in
CI systems (which should instead be fixed to not use shallow clones). Sorry for
the inconvenience!

大雑把にまとめると、簡単な操作にもかかわらず、その割りにかなりの負荷がかかる処理を繰り返し実行することになってコストがかかるため、自動で更新することをやめたというようなことのようです。

スポンサーリンク

brew updateのエラーの対処法

このエラーを修正、というかHomebrewをアップデートするにはどうすればいいのか?

その答えは、先のエラーメッセージの中に答えがあります。

% git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow

このコマンドをターミナルから実行するだけです。

現在の私のbrewのバージョンを確認しておくと次のようになります。

% brew --version
Homebrew 2.6.2
Homebrew/homebrew-core (git revision c9321; last commit 2020-12-16)

では、先のコマンドを実行してみましょう。

すると、次のように表示されて処理が完了です。

% git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
remote: Enumerating objects: 685477, done.
remote: Counting objects: 100% (685419/685419), done.
remote: Compressing objects: 100% (231873/231873), done.
remote: Total 675889 (delta 446835), reused 670114 (delta 441158), pack-reused 0
Receiving objects: 100% (675889/675889), 269.69 MiB | 1.58 MiB/s, done.
Resolving deltas: 100% (446835/446835), completed with 7072 local objects.
From https://github.com/Homebrew/homebrew-core
   c93214fd17..fe337cf3a5  master     -> origin/master

この処理はかなり時間がかかりました。

コマンドを入力して3分ほどは処理が止まったまま何も反応しませんでした。

上記のように表示されるには、私の環境では約8分かかりました。

ここでバージョンを確認すると2.6.2のままでした。

% brew --version
Homebrew 2.6.2
Homebrew/homebrew-core (git revision c9321; last commit 2020-12-16)

そこで、brew updateコマンドを打って実行してみます。

 % brew update
Updated 1 tap (homebrew/core).
==> New Formulae
(以下省略)

今度はbrew updateコマンドが実行できました。

バージョンを確認してみます。

% brew --version
Homebrew 2.7.0
Homebrew/homebrew-core (git revision fe337c; last commit 2020-12-26)

Homebrewのバージョンが2.7.0にアップデートされているのが確認できます。

% brew doctor
Your system is ready to brew.

brew doctorでも問題ありませんでした。

以上、今回の対処経過でした。

スポンサーリンク

まとめ

Homebrewのbrew updateコマンドを実行すると、Error: homebrew-core is a shallow clone. の表示が出ました。

その対処法は、エラーメッセージにあるコマンドをターミナルから実行するのみです。

この処理にはかなり時間がかかるよ思われます。

処理が完了するとbrew updateコマンドが動くはずです。

タイトルとURLをコピーしました