gitolite 无法执行 git

gitolite 无法执行 git

我在设置 gitolite 时遇到问题。服务器是 Mac OS X Server 10.5.8,客户端是 Mac OS X 10.6.6。两者都运行从源代码编译的 git 1.7.3.4。

我尽可能地遵循文档,但它确实需要大修,而且有些地方令人困惑。我认为作者没有对其进行测试。

我使用了“根方法”安装。问题是当我运行最后一步时:cd; git clone git@server:gitolite-admin

以下是客户端发生的情况:

tom@client$ ssh[电子邮件保护]信息
你好,汤姆,这里的 gitolite 版本是 v1.5.8-22-g6bcb5c1
gitolite 配置为您提供以下访问权限:
     RW gitolite 管理员
    @R_ @W_ 测试
tom@client$ git 克隆[电子邮件保护]:gitolite 管理员
克隆到 gitolite-admin...
无法执行“git”:/usr/local/bin/gl-auth-command 第 176 行处没有该文件或目录。
致命:远端意外挂断

https://github.com/sitaramc/gitolite/blob/pu/doc/ssh-troubleshooting.mkd

因此,调试起来要容易得多。只需运行ssh git@server info。如果这能让你获得 gitolite 版本和访问信息,则一切正常。如果它要求你输入密码,请参阅本文档的第一部分以获取帮助。

因此我得出结论,gitolite 的 SSH 部分已正确配置。

服务器:

admin@server$ su-git
密码:
git@server$ 哪个 git
在 /usr/local/bin/git
git@server$ 哪个 gl-auth-command
/usr/local/bin/gl-auth 命令
git @服务器$ tail -n 2 /usr/local/bin/gl-auth-command
$repo = "'$REPO_BASE/$repo.git'";
exec("git", "shell", "-c", "$verb $repo") 除非 $verb 等于'git-init';

git 在服务器上可用,就像在 git 用户的$PATH.

我使用“tail”来显示最后两行,175 和 176,因为显然最后一行是失败的行。

到底出了什么问题?我一直为此绞尽脑汁。

答案1

这看起来可能与此处描述的问题相同:

Mac 上的 gitolite 设置 => git-upload-pack:未找到命令

交互式会话不一定具有与非交互式会话相同的环境变量设置。尝试将 git 的 PATH (/usr/local/bin) 添加到 git 用户的 shell init 文件中,该文件在交互式和非交互式会话中都会读取。如果 git 用户的 shell 是 bash,请尝试 ~git/.bashrc 。

答案2

如果 gl-auth-command 无法找到 git 安装位置,您可以$GIT_PATH在文件中设置变量。请参阅gitolite.rchttp://sitaramc.github.com/gitolite/doc/gitolite.rc.html了解更多信息。

当从 ssh 运行 gl-auth-command 时,/usr/local/bin/ 似乎不是 $PATH 的一部分,因此您的 shell 必须在您正常登录时添加它,但在非登录非交互式使用期间则不能添加它。

相关内容