저는 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