Ubuntu

通過 ssh 連接時,Ubuntu 上的 Homebrew 不可用(PATH 不包括 brew 位置)

  • February 11, 2022

我正在使用 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路徑直接附加到PATHenv 變數一次(即,在登錄/連接等期間不通過 .zshrc 等附加)。.zshrc即使建立了非互動式連接,也可以獲取源,並且在此處附加路徑解決了問題。PATH直接使用 Ubuntu 機器時並沒有改變env 變數。

引用自:https://unix.stackexchange.com/questions/690259