Ubuntu
通過 ssh 連接時,Ubuntu 上的 Homebrew 不可用(PATH 不包括 brew 位置)
我正在使用 ssh 從 Mac 連接到安裝了 Homebrew 的 Ubuntu 機器(按照這些說明)。直接使用 Ubuntu 機器時,
brew
工作正常。但是使用 ssh,我得到了消息zsh: command not found: brew
。我在兩台機器上都使用 zsh 和 oh-my-zsh。我使用 ssh 連接時的PATH
變數與我直接使用機器時的變數不同(沒有很多位置,包括 for 的位置brew
)。我懷疑問題可能是這裡提到的問題,但我不太清楚解決方案是什麼。在通過 ssh 連接時,了解如何獲得與機器上相同的路徑將非常有用。謝謝。
我從這個SO 問題的答案中的評論中得到了一些啟發,設法解決了這個問題。
添加
export PATH=:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$PATH
到.zshenv
主目錄中的文件(如果它不存在則可能必須創建)解決了問題,現在我在 ssh 時看到了完整路徑。我對問題原因的理解是 ssh 通過非互動模式連接(不完全確定那是什麼!)。
PATH
當通過 ssh 非互動方式遠端訪問時,Ubuntu 機器的整個變數都不是 source 的。該brew
路徑直接附加到PATH
env 變數一次(即,在登錄/連接等期間不通過 .zshrc 等附加)。.zshrc
即使建立了非互動式連接,也可以獲取源,並且在此處附加路徑解決了問題。PATH
直接使用 Ubuntu 機器時並沒有改變env 變數。