Brew已安裝,已鏈接,但未找到

Brew已安裝,已鏈接,但未找到

我剛剛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 ~/.bashrcsource ~/.zshrc關閉/打開您的終端。

然後照常運行 mtr

sudo mtr 1.1.1.1 

相關內容