Gitolite安装问题

15

有人尝试过 gitolite 的易安装选项吗?
我正在尝试从我的 Windows(工作站)安装 gitolite 到一个 Solaris 服务器。

[command used to install] 
./gl-easy-install -q git sjcfsap1 git

命令在以下位置中断。

*Y*ou are logging into system : [gitserver]
cloning gitolite-admin repo...
Initialized empty Git repository in c:/Documents and Settings/chandve/gitolite-a
dmin/.git/
Password:
fatal: 'gitolite-admin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly**

有人遇到过这个问题吗?你认为gitolite值得去尝试吗?我正在寻找评估Git的ACL。

提前感谢您的回复。

[以下是完整的命令执行日志]

CHANDVE@CHANDVE /c/git/repos/gitolite/src (master)
$ ./gl-easy-install git sjcfsap1 git


------------------------------------------------------------------------

you are upgrading     v1.5.3-13-g20c2e1a     to v1.5.3-13-g20c2e1a

Note: getting '(unknown)' for the 'from' version should only happen once.
Getting '(unknown)' for the 'to' version means you are probably installing
from a tar file dump, not a real clone.  This is not an error but it's nice to
have those version numbers in case you need support.  Try and install from a
clone


...press enter to continue or Ctrl-C to bail out


------------------------------------------------------------------------

the next command will create a new keypair for your gitolite access

The pubkey will be /c/Documents and Settings/chandve/.ssh/git.pub.  You will hav
e to choose a
passphrase or hit enter for none.  I recommend not having a passphrase for
now, *especially* if you do not have a passphrase for the key which you are
already using to get server access!

Add one using 'ssh-keygen -p' after all the setup is done and you've
successfully cloned and pushed the gitolite-admin repo.  After that, install
'keychain' or something similar, and add the following command to your bashrc
(since this is a non-default key)

    ssh-add $HOME/.ssh/git

This makes using passphrases very convenient.


...press enter to continue or Ctrl-C to bail out


------------------------------------------------------------------------

Hmmm... pubkey /c/Documents and Settings/chandve/.ssh/git.pub exists; should I j
ust (re-)use it?

IMPORTANT: once the install completes, *this* key can no longer be used to get
a command line on the server -- it will be used by gitolite, for git access
only.  If that is a problem, please ABORT now.

doc/6-ssh-troubleshooting.mkd will explain what is happening here, if you need
more info.


...press enter to continue or Ctrl-C to bail out


------------------------------------------------------------------------

your $HOME/.ssh/config already has settings for gitolite.  I will assume
they're correct, but if they're not, please edit that file, delete that
paragraph (that line and the following few lines), Ctrl-C, and rerun.

In case you want to check right now (from another terminal) if they're
correct, here's what they are *supposed* to look like:

host gitolite
     user git
     hostname sjcfsap1
     port 22
     identityfile ~/.ssh/git



...press enter to continue or Ctrl-C to bail out
gitolite.pm                                   100%   26KB  26.3KB/s   00:00
gl-auth-command                               100% 8319     8.1KB/s   00:00
gl-compile-conf                               100%   26KB  25.6KB/s   00:00
gl-conf-convert                               100% 2325     2.3KB/s   00:00
gl-easy-install                               100%   23KB  23.2KB/s   00:00
gl-emergency-addkey                           100% 1295     1.3KB/s   00:00
gl-install                                    100% 4087     4.0KB/s   00:00
gl-setup                                      100% 3081     3.0KB/s   00:00
gl-system-install                             100% 1814     1.8KB/s   00:00
gl-tool                                       100% 2145     2.1KB/s   00:00
output.txt                                    100%   60KB  60.2KB/s   00:00
sshkeys-lint                                  100% 2962     2.9KB/s   00:00
example.conf                                  100%   12KB  12.1KB/s   00:00
example.gitolite.rc                           100% 8390     8.2KB/s   00:00
VERSION                                       100%   19     0.0KB/s   00:00
0-INSTALL.mkd                                 100%   12KB  11.6KB/s   00:00
1-migrate.mkd                                 100% 3569     3.5KB/s   00:00
2-admin.mkd                                   100% 9063     8.9KB/s   00:00
3-faq-tips-etc.mkd                            100%   29KB  29.0KB/s   00:00
4-wildcard-repositories.mkd                   100%   12KB  11.8KB/s   00:00
5-delegation.mkd                              100% 6143     6.0KB/s   00:00
6-ssh-troubleshooting.mkd                     100%   19KB  19.5KB/s   00:00
7-install-transcript.mkd                      100% 8372     8.2KB/s   00:00
9-gitolite-and-ssh.mkd                        100% 7798     7.6KB/s   00:00
9-packaging.mkd                               100% 2257     2.2KB/s   00:00
9-uninstall.mkd                               100% 2791     2.7KB/s   00:00
admin-defined-commands.mkd                    100% 9700     9.5KB/s   00:00
big-config.mkd                                100% 6469     6.3KB/s   00:00
CHANGELOG                                     100% 3873     3.8KB/s   00:00
COPYING                                       100%   18KB  17.9KB/s   00:00
hook-propagation.mkd                          100% 7654     7.5KB/s   00:00
overkill.mkd                                  100% 2059     2.0KB/s   00:00
progit-article.mkd                            100%   12KB  12.5KB/s   00:00
report-output.mkd                             100% 1818     1.8KB/s   00:00
shell-games.mkd                               100% 3363     3.3KB/s   00:00
gitolite-hooked                               100%    0     0.0KB/s   00:00
update                                        100% 4728     4.6KB/s   00:00
post-update                                   100%  943     0.9KB/s   00:00


------------------------------------------------------------------------

the gitolite rc file needs to be edited by hand.  The defaults are sensible,
so if you wish, you can just exit the editor.

Otherwise, make any changes you wish and save it.  Read the comments to
understand what is what -- the rc file's documentation is inline.

Please remember this file will actually be copied to the server, and that all
the paths etc. represent paths on the server!


...press enter to continue or Ctrl-C to bail out


------------------------------------------------------------------------
Oh hey... you already had a '.gitolite.rc' file on the server.
Let's see if we can use that instead of the default one...

...press enter to continue or Ctrl-C to bail out
.gitolite.rc                                  100% 8390     8.2KB/s   00:00


------------------------------------------------------------------------

ignore any 'please edit this file' or 'run this command' type lines in the
next set of command outputs coming up.  They're only relevant for a manual
install, not this one...


...press enter to continue or Ctrl-C to bail out

    *** WARNING ***: looks like an upgrade... ignoring argument 'git'
/export/home/git/repositories already exists
/export/home/git/.gitolite already exists
/export/home/git/.gitolite/conf already exists
/export/home/git/.gitolite/doc already exists
/export/home/git/.gitolite/keydir already exists
/export/home/git/.gitolite/logs already exists
/export/home/git/.gitolite/src already exists
/export/home/git/.gitolite/hooks already exists
/export/home/git/.gitolite/hooks/common already exists
/export/home/git/.gitolite/hooks/gitolite-admin already exists
copying post-update hook to gitolite-admin repo...
Pseudo-terminal will not be allocated because stdin is not a terminal.
stty: : Invalid argument



You are logging into system : sjcfsap1
/export/home/git/repositories already exists
/export/home/git/.gitolite already exists
/export/home/git/.gitolite/conf already exists
/export/home/git/.gitolite/doc already exists
/export/home/git/.gitolite/keydir already exists
/export/home/git/.gitolite/logs already exists
/export/home/git/.gitolite/src already exists
/export/home/git/.gitolite/hooks already exists
/export/home/git/.gitolite/hooks/common already exists
/export/home/git/.gitolite/hooks/gitolite-admin already exists
copying post-update hook to gitolite-admin repo...


------------------------------------------------------------------------

now we will clone the gitolite-admin repo to your workstation and see if it
all hangs together.  We'll do this in your $HOME for now, and you can move
it elsewhere later if you wish to.


...press enter to continue or Ctrl-C to bail out
Initialized empty Git repository in c:/Documents and Settings/chandve/gitolite-a
dmin/.git/
Password:
Password:
fatal: 'gitolite-admin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
4个回答

22

如果在服务器上,git用户为远程用户在~/.ssh/authorized_keys中设置的密钥没有以command变量为前缀,那么就会出现这种情况:

% cat ~/.ssh/authorized_keys
ssh-rsa ...... user@host
# gitolite start
command="/home/gituser/.... user@host
# gitolite end
%

只需删除第一行即可,然后你可以继续进行。


1
这正是我遇到的情况。我之前按照基于ssh的标准git服务器安装,然后决定转向gitolite,但留下了“未加前缀”的公钥在authorized_keys文件中。 - Stefano
哦,关于gitolite文档中的指针大警告:http://sitaramc.github.com/gitolite/doc/2-admin.html#_adding_users_and_repos - Stefano

3

我做了完全相同的安装(从Windows到Solaris),这是值得的。

我这样做了:

  • 从git bash会话中(而不是DOS会话)进行,
  • 确保$HOME正确设置(即引用存储有我的.ssh公钥/私钥的目录,包括在Solaris服务器端存在的用户的公钥/私钥)。

嗨VonC, 我也尝试使用git bash。我的主目录也指向/c/documents & settings/chandve(.ssh在此目录中)但是我收到了上面提到的错误。 - vengateswaran c
@vengateswaran:我记得在最后一步遇到了这个问题,但它并没有成为阻碍。下周一我会看看我需要做哪些更改才能让克隆成功。 - VonC
你好 VonC,你使用的是哪个版本的 msysgit?你的 msysgit 版本中是否包含 ssh-copy-id 命令? - vengateswaran c
谢谢。我明白在安装时没有复制ID命令,而是使用了上述命令来规避其缺失。 - vengateswaran c
1
@vengateswaran:我确认:没有“ssh-copy-id”。我使用了一些相当的命令,比如:“cat ~/.ssh/id_dsa.pub | ssh user@machine "cat - >> ~/.ssh/authorized_keys" ”。 - VonC
显示剩余2条评论

2
大多数情况下,这似乎是因为ssh没有传递正确的公钥给gitolite使用。参见"不是Git仓库"。本文中的评论链接到gitolite作者的网站,尤其是'附录#2',其中解释了如何知道"哪个密钥是哪个"。

1
我们通过阅读https://github.com/sitaramc/gitolite/blob/pu/doc/ssh-troubleshooting.mkd文档来解决这个问题。具体来说,是阅读了提到我们没有遵守指示的部分。 “这些问题发生在那些完全没有阅读/遵守运行gl-easy-install后出现的消息的人身上。” 删除所有文件。重新运行安装程序,并且遵守指示 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接