我剛剛mtr
透過 Homebrew 安裝,它似乎成功完成(即沒有什麼異常)。
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 get 連結到 /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 開始,還需要一個指令:
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 機器,路徑是不同的。
將此行新增至
.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