Brew がインストールされ、リンクされていますが、見つかりません

Brew がインストールされ、リンクされていますが、見つかりません

Homebrew 経由でインストールしたところmtr、正常に完了したようです (つまり、異常はありません)。

MBA% mtr
zsh: command not found: mtr

それは奇妙だ。もう一度試してみようと思った。

MBA% brew install mtr
Warning: mtr-0.86 already installed

わかりました。次のようにシンボリックリンクされている可能性がありますmtr-0.86:

MBA% mtr-0.86
zsh: command not found: mtr-0.86

いいえ、わかりました。リンクに失敗しただけかもしれません。

MBA% brew link mtr
Warning: Already linked: /usr/local/Cellar/mtr/0.86
To relink: brew unlink mtr && brew link mtr
MBA% brew unlink mtr && brew link mtr
Unlinking /usr/local/Cellar/mtr/0.86... 3 symlinks removed
Linking /usr/local/Cellar/mtr/0.86... 2 symlinks created
MBA% mtr zsh: command not found: mtr

しかし:

MBA% /usr/local/Cellar/mtr/0.86/sbin/mtr
[Success]

何が起こっているのでしょうか? Homebrew がリンクに失敗するのはなぜでしょうか (また、再リンク時に作成されるシンボリックリンクの数が少なくなるのはなぜでしょうか)?

答え1

brew 0.86 をインストールしたときにも同じことが起こりました。ほとんどのバイナリは /usr/local/bin にリンクされますが、brew は /usr/local/sbin にリンクされます。これはまったく正しいのですが、パス全体を入力せずに済むようにパスを拡張する必要があります。

export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"

一度修正すると、永続的に修正するには.bash_profileを調整する必要があります。

答え2

mtr v0.86 以下の場合:

brew install mtr
ln /usr/local/Cellar/mtr/0.86/sbin/mtr /usr/local/bin/mtr
sudo mtr superuser.com

しかし、mtr v0.87 以降ではもう 1 つのコマンドが必要になります。

ln /usr/local/Cellar/mtr/0.92/sbin/mtr-packet /usr/local/bin/mtr-packet

答え3

現在の変数/usr/local/sbinに追加して永続化します。PATH

export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"
echo '/usr/local/sbin' | sudo tee -a /etc/paths

答え4

スタックオーバーフローで答えを見つけました:https://stackoverflow.com/a/72387809/602072

注意: Apple Silicon マシンの場合、PATH は異なります。

この行を追加する.bashrcか、.zshrc

# Intel export PATH=$PATH:/usr/local/sbin

# Apple Silicon export PATH=$PATH:/opt/homebrew/sbin 

ターミナルを実行するsource ~/.bashrcか、閉じるか開きます。source ~/.zshrc

その後、通常通りmtrを実行します

sudo mtr 1.1.1.1 

関連情報