🔗

brew tap dart-lang/dart でコケた

2022/04/14に公開

エラーの内容

M1 MacにDartいれようとしたらコケた。

$ brew tap dart-lang/dart
==> Tapping dart-lang/dart
Cloning into '/opt/homebrew/Library/Taps/dart-lang/homebrew-dart'...
remote: Enumerating objects: 2785, done.
remote: Counting objects: 100% (949/949), done.
remote: Compressing objects: 100% (600/600), done.
remote: Total 2785 (delta 634), reused 571 (delta 317), pack-reused 1836
Receiving objects: 100% (2785/2785), 524.93 KiB | 3.03 MiB/s, done.
Resolving deltas: 100% (1761/1761), done.
Error: Non-symlink alias: /opt/homebrew/Library/Taps/dart-lang/homebrew-dart/Aliases/dart@2.16
Error: Cannot tap dart-lang/dart: invalid syntax in tap!

末尾2行の

Error: Non-symlink alias: /opt/homebrew/Library/Taps/dart-lang/homebrew-dart/Aliases/dart@2.16
Error: Cannot tap dart-lang/dart: invalid syntax in tap!

ここが問題で何いってるかよくわかんなかったんだけど、原因としてはbrew関係なくてgitの設定だった。

解決策

git config --global core.symlinks true

説明

dart-lang/homebrew-dart を見ると ./Aliases の中にsymlinkがおいてある。

brew tap の処理は、このgithubのレポジトリをcloneしてきてゴニョゴニョ処理をするんだけど、このとき、前述の core.symlinks の設定が無効な場合にsymlinkじゃなくてファイルとしてcloneされちゃって、解決できなくてエラーになった、ということでした。

というわけで、 core.symlinks を有効にしたうえで再度 brew tap dart-lang/dart すれば解決しました。

Discussion