私はSSHを使ってMacでHomebrewがインストールされているUbuntuシステムに接続しています(次の手順に従ってください)。これら指示)。 Ubuntuシステムを直接使用するとbrew
正常に動作します。ところでSSHを通じてメッセージを受け取りましたzsh: command not found: brew
。どちらのシステムでもzshとoh-my-zshを使用しています。 SSHを使用して接続するときの変数は、PATH
マシンを直接使用するときとは異なります(forを含む場所はあまりありません)。brew
上記の問題に問題があるようです。ここしかし、解決策が何であるかよくわかりません。
SSH経由で接続するときにコンピュータと同じパスを取得する方法を知っておくと便利です。ありがとうございます。
答え1
回答のコメントからインスピレーションを得て、この問題を正常に解決しました。これだから質問です。
export PATH=:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$PATH
私のホームディレクトリにファイルを追加すると.zshenv
(まだ存在しない場合はファイルを作成する必要があるかもしれません)、問題が解決され、SSH接続時にフルパスが表示されます。
問題の原因についての私の理解は、ssh接続が非対話型モードを介して行われていることです(それが何であるかを完全に確実にすることはできません!)。PATH
非対話型でSSH経由でリモートアクセスすると、Ubuntuコンピュータの完全な変数は取得されません。パスはenv変数brew
に一度だけ追加されます(つまり、ログイン/接続中に.zshrcなどを介して追加されません)。非対話型接続が行われても、ソースを取得してここにパスを追加すると問題が解決します。 Ubuntuシステムを直接使用しても、env変数は変更されません。PATH
.zshrc
PATH