homebrew で初見のエラーと遭遇したのですが解決したので流れを残しておきます。
# 環境
- Mac: Mac mini (M1, 2020)
- OS: macOS 11.2.3
- homebrew:
- Homebrew 3.0.10
- Homebrew/homebrew-core (git revision dacbf46117; last commit 2021-03-31)
- Homebrew/homebrew-cask (git revision 0fcda4d3cf; last commit 2021-03-31)
# 発生したこと
以下のようにbrew doctor
でエラーが生じました。
❯ brew doctor
Error: formulae require at least a URL
/opt/homebrew/Library/Homebrew/formula.rb:271:in \`determine\_active\_spec'
/opt/homebrew/Library/Homebrew/formula.rb:206:in \`initialize'
/opt/homebrew/Library/Homebrew/formulary.rb:153:in \`new'
/opt/homebrew/Library/Homebrew/formulary.rb:153:in \`get\_formula'
/opt/homebrew/Library/Homebrew/formulary.rb:305:in \`get\_formula'
/opt/homebrew/Library/Homebrew/formulary.rb:366:in \`factory'
/opt/homebrew/Library/Homebrew/formulary.rb:413:in \`from\_keg'
/opt/homebrew/Library/Homebrew/formulary.rb:386:in \`from\_rack'
/opt/homebrew/Library/Homebrew/diagnostic.rb:739:in \`block in check\_for\_unreadable\_installed\_formula'
/opt/homebrew/Library/Homebrew/diagnostic.rb:738:in \`each'
/opt/homebrew/Library/Homebrew/diagnostic.rb:738:in \`check\_for\_unreadable\_installed\_formula'
/opt/homebrew/Library/Homebrew/cmd/doctor.rb:64:in \`block in doctor'
/opt/homebrew/Library/Homebrew/cmd/doctor.rb:57:in \`each'
/opt/homebrew/Library/Homebrew/cmd/doctor.rb:57:in \`doctor'
/opt/homebrew/Library/Homebrew/brew.rb:122:in \`<main>'
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
formulae に URL がないよ、ということで怒られている感じです。
# 解決
こちらのページを参考にしました
Homebrew で formulae require at least a URL エラー | tech-broccoli.life (opens new window)
どうやらtap
に問題がある可能性があるようです。
現在自分の環境のtap
一覧は以下のようになっています。
❯ brew tap
a-know/tap
homebrew/bundle
homebrew/cask
homebrew/cask-fonts
homebrew/core
jesseduffield/lazygit
nektos/tap
px4/px4
skanehira/docui
2
3
4
5
6
7
8
9
10
前掲のページを参考にbrew readall
を実行したところ、act
の読み込みが失敗しているようでした。
❯ brew readall
Error: Invalid formula: /opt/homebrew/Library/Taps/nektos/homebrew-tap/Formula/act.rb
formulae require at least a URL
2
3
リポジトリを確認したところ、どうやらtap
は不要になっているようです。
nektos/act: Run your GitHub Actions locally 🚀 (opens new window)
さらにログを追ったところ、以下のプルリクで修正されていました。半年ほど前のものです。
Fix Homebrew install instructions by twpayne · Pull Request #374 · nektos/act (opens new window)
数日前まではbrew doctor
も普通に動いていたはずなので、なぜ今になって問題が発生したのかよくわかりませんが、とりあえずtap
を消したほうが良さそうです。
ということでbrew untap
を実行します。
❯ brew untap nektos/tap
Untapping nektos/tap...
Untapped 1 formula (37 files, 48.6KB).
2
3
これでbrew doctor
が正常終了するようになりました。
❯ brew doctor
Your system is ready to brew.
2
念の為act
を再インストールしておきます。
❯ brew uninstall act
Uninstalling /opt/homebrew/Cellar/act/0.2.20... (5 files, 18.6MB)
❯ brew install act
==> Downloading https://homebrew.bintray.com/bottles/act-0.2.21.arm64\_big\_sur.bottle.tar.gz
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/3fc1e135316268f24528e6ceb830092c97441880575f6e5b6aee7a8e71b5ebb9?response-content-disposition=at
==> Pouring act-0.2.21.arm64\_big\_sur.bottle.tar.gz
🍺 /opt/homebrew/Cellar/act/0.2.21: 5 files, 19.7MB
Removing: /Users/kawarimidoll/Library/Caches/Homebrew/act--0.2.20.tar.gz... (6.7MB)
2
3
4
5
6
7
8
9
# まとめ
brew doctor
が失敗して慌てましたが、原因はtap
の変更によるものでした。
今後は類似の問題に遭遇しても焦らず対処できそうです。
ちなみに、複数台 Mac を所有しているのですが、マシンによって発生したりしなかったりでした。intel chip の Macbook では問題は起きなかったので、M1 依存の問題かもしれません。