У меня проблемы с настройкой гитолита. Сервер - 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 git@git.example.com info hello tom, the gitolite version here is v1.5.8-22-g6bcb5c1 the gitolite config gives you the following access: R W gitolite-admin @R_ @W_ testing tom@client$ git clone git@git.example.com:gitolite-admin Cloning into gitolite-admin... Can't exec "git": No such file or directory at /usr/local/bin/gl-auth-command line 176. fatal: The remote end hung up unexpectedly
Из https://github.com/sitaramc/gitolite/blob/pu/doc/ssh-troubleshooting.mkd
В результате отладка становится намного проще. Просто беги
ssh git@server info
. Если это даст вам версию гитолита и информацию о доступе, все в порядке. Если он запрашивает пароль, обратитесь за помощью в самый первый раздел этого документа.
Таким образом, я прихожу к выводу, что SSH-часть гитолита настроена правильно.
Сервер:
admin@server$ su - git Password: git@server$ which git /usr/local/bin/git git@server$ which gl-auth-command /usr/local/bin/gl-auth-command git@server$ tail -n 2 /usr/local/bin/gl-auth-command $repo = "'$REPO_BASE/$repo.git'"; exec("git", "shell", "-c", "$verb $repo") unless $verb eq 'git-init';
git доступен на сервере, как и пользователь git $PATH
.
Я использовал «хвост», чтобы показать последние две строки, 175 и 176, поскольку, очевидно, последняя строка - это та, которая не работает.
Что, черт возьми, не так? Я бил этим головой об стену.
Похоже, это может быть та же проблема, что описана здесь:
настройка gitolite на Mac => git-upload-pack: команда не найдена
В интерактивных сеансах не обязательно должны быть установлены те же переменные среды, что и в неинтерактивных сеансах. Попробуйте добавить PATH к git (/ usr / local / bin) в файл инициализации оболочки для пользователя git, который читает как в интерактивных, так и в неинтерактивных сеансах. Если оболочка пользователя git - bash, попробуйте ~ git / .bashrc.
Вы можете установить $GIT_PATH
переменная в gitolite.rc
файл, если команда gl-auth-command не может найти место установки git. Видеть http://sitaramc.github.com/gitolite/doc/gitolite.rc.html для получения дополнительной информации.
Похоже, что / usr / local / bin / не является частью $ PATH, когда команда gl-auth-command запускается из ssh, поэтому ваша оболочка должна добавлять ее при обычном входе в систему, но не во время неинтерактивного использования без входа в систему.