我试图svnserve
通过 SSH 在服务器上提供(Subversion 服务器)时出现了这个问题。我编译了 SVN 并将其安装在$HOME/bin
. 本地访问它(不是通过 SSH)工作正常。
svn+ssh
由于以下原因连接失败:
bash: svnserve: command not found
Run Code Online (Sandbox Code Playgroud)
调试这个,我发现:
ssh user@server "which svnserve"
Run Code Online (Sandbox Code Playgroud)
说:
which: no svnserve in (/usr/bin:/bin)
Run Code Online (Sandbox Code Playgroud)
这就奇怪了,因为我已经更新的路径,$HOME/bin
在我.bashrc
,和还增加了它~/.ssh/environment
。但是,SSH 似乎没有读取它。虽然当我跑步时:
ssh user@server "echo $PATH"
Run Code Online (Sandbox Code Playgroud)
它确实打印了我更新的路径!
这里发生了什么?如何让 SSH 找到我的svnserve
? 提前致谢
事实上,只有当您处于交互式 shell 中时才会执行 和.bashrc
。.bash_profile
当您通过 ssh 登录时,您并不处于交互式 shell 中,因此您的自定义PATH
定义永远不会运行。您可以使用 将脚本关联到非交互式工作表BASH_ENV
。另请检查.ssh/environment
这是否为您提供了另一种选择。了解这一点的最好方法是通过实践man ssh
。
祝你好运!
归档时间: |
|
查看次数: |
19253 次 |
最近记录: |