2
可執行文件,我在使用這種通過SSH連接到遠程機器我~/.ssh/config
:混帳設置遠程路徑與git通過ssh
Host myserver
User myusername
ProxyCommand ssh myserver2 exec nc myserver 22
但是當我嘗試拉遠程git倉庫,我得到這個錯誤:
% git pull myserver:~/mygitrepository
zsh:1: command not found: git-upload-pack
fatal: The remote end hung up unexpectedly
問題是我的git可執行文件不在$ PATH定義的標準路徑中。在遠程機器上:
% which git-upload-pack
/c5/shared/git/1.7.6/bin/git-upload-pack
,並在本地機器上:
% ssh myserver "env | grep PATH"
PATH=/usr/local/bin:/bin:/usr/bin
SSH不讀.zshrc或.bashrc中遠程路徑定義。我怎樣才能定義PATH git git可執行文件?
ssh根本不會讀取任何PATH定義,因爲它只是建立連接,它不是你的shell。你實際上遇到了一個問題,你的zsh應該被指責(如果它沒有讀取.zshrc),或者你只需要將你的PATH添加到你的.zshrc :) – 2013-03-06 10:10:08
實際上ssh不讀取用戶配置文件(。 zshrc或.bashrc),當ssh使用參數中的命令啓動時。 PATH變量已經在我的.zshrc中定義了,當我通過ssh在交互式會話中連接時,git可以正常工作。 – bougui 2013-03-06 10:17:19
然後您可以簡單地將PATH定義添加到該命令,對吧? (或'源'的.zshrc) – 2013-03-06 10:22:44