我正在实现一个系统,用于将源代码从我的 svn 服务器导出到客户端的服务器(将要托管网络的地方)。
我要求我的客户在他的计算机上安装 subversion,以便能够通过 ssh 从他的服务器命令行使用“svn export”命令。
我不知道他的服务器是如何配置的...我在其他本地机器/服务器上进行了测试,并且能够从我的服务器远程检索代码,但在他的服务器中我收到错误:
未找到 svn 命令
我告诉他用他的用户测试“svn”命令以检查它是否有效,他说这对他来说没问题“提示输入 svn help... blabla”。所以我认为这是一个权限问题。
我必须告诉他在他的服务器上做什么才能在那里访问 svn 命令?我尝试在本地和我的服务器上进行测试,但我添加的每个新用户(即使使用 useradd 并且没有特定权限/组)都能够访问 svn 命令,所以我没有任何线索。
他的机器是 Ubuntu 10.04.2 LTS
任何帮助均感激不尽。
编辑 - - - - - - - - - - - - - - - - - -
将 ~/bin 添加到 $PATH 并将 ln -s /usr/bin/svn 添加到 ~bin/svn 可以吗?
是否可以授予 visudo NOPASSWD 中的用户执行特定命令(在本例中为 usr/bin/svn)的权限,以便能够使用“sudo svn”?这应该可以解决问题。
PS:请原谅我的英语,这不是我的母语。
答案1
这不是答案针对您的问题,但需要进一步调查步骤。我在评论中没有太多空间和格式。
我会调查该用户的启动脚本,例如 .profile 或 .bashrc,以查看路径是否被更改。您可以尝试让您的客户使用 SSH 登录。以下命令在我的服务器上显示该svn
命令可供调用
:~> echo $PATH
/home/djechelon/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games
:~> whereis svn
svn: /usr/bin/svn /usr/share/man/man1/svn.1.gz
解释:第一个命令显示 Linux 中的活动PATH
,第二个命令告诉我svn
可执行文件位于何处。忘记svn.1.gz
哪个是man
命令。
通常svn
二进制文件位于 中/usr/bin
,通常在 下PATH
。如果您的客户设置了不同的机器和/或 SVN,那么您可能会发现一些不同的东西。
请记住,您或您的客户必须使用同一个账户登录服务器时遇到问题。