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コマンドが動くはずです。