我让我的svn设置工作了多年,现在它突然决定不工作了。我正在使用svn+ssh。我可以直接把ssh放到服务器上,然后我可以运行type svnserve,这给了我svnserve is /usr/local/bin/svnserve,我也可以在客户机上这样做,如:
ssh -p 1234 user@myserver "sh -l -c 'type svnserve'" 得到和上面一样的回应。但是当我跑的时候
svn list -v svn+ssh://user@myserver/my_repo在SSH身份验证成功之后,它给了我sh: svnserve: command not found。我可以列出回购罚款,如果我直接在服务器上没有ssh。有人能帮忙吗?谢谢
附注:我是唯一使用此svn服务器的用户。
发布于 2021-04-19 13:30:54
在我们的例子中,它已经足够运行
ln -s /var/packages/SVN/target/bin/svnserve /usr/bin/svnserve在语法上。
发布于 2021-04-19 13:34:14
谢谢你这么做!<3这挽救了我们公司的SVN!:)
看起来,最近DSM和SVN更新的结合,一定是把一些事情搞砸了。通过终端跟踪SSH和SVN错误消息,罪魁祸首似乎是启动SH进程的机器用户找不到的svnserve二进制文件,然后该进程试图运行svnserve。
但是,对于这个问题,有一个更简单的解决方案(当然也是野蛮的),而不需要任何包装器、脚本或BASH配置文件:只需创建一个全局可用的SymLink,以确定svnserve二进制文件在其语法数据包路径中的实际位置。
Synology数据包中的svnserve位于这里: /var/packages/ SVN /target/bin/svnserve
我最终所要做的就是在/usr/bin/文件夹中为该文件创建一个SymLink,现在一切都按预期工作了。
所以通过SSH登录,然后
cd /usr/bin
ln -s /var/packages/SVN/target/bin/svnserve svnserve这应该能起作用。“在这里工作”:)
如果没有您的指示,我们可能仍然处于恐慌和寻找解决办法,所以再次感谢您找到了这一个!
https://askubuntu.com/questions/1330448
复制相似问题