(svn+ssh) 让 bash 通过 SSH 加载我的路径

Eli*_*sky 6 ssh bash svn

我试图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? 提前致谢

Pau*_*tos 3

事实上,只有当您处于交互式 shell 中时才会执行 和.bashrc.bash_profile当您通过 ssh 登录时,您并不处于交互式 shell 中,因此您的自定义PATH定义永远不会运行。您可以使用 将脚本关联到非交互式工作表BASH_ENV。另请检查.ssh/environment这是否为您提供了另一种选择。了解这一点的最好方法是通过实践man ssh

祝你好运!