🔗
brew tap dart-lang/dart でコケた
エラーの内容
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