Re: How to setup a public reposistory?
- From
Andreas Ericsson <ae@op5.se>
- Date
- Nov 22, 2008, 11:12 UTC
- Message-ID
- <4927E931.3080802@op5.se>
- In-Reply-To
- <354563.49837.qm@web37901.mail.mud.yahoo.com>
Gary Yang wrote:
Show 52 quoted lines
> I followed the steps outlined by the links below. But, I am still not able to setup the public repository. I got, fatal: unable to connect a socket (Connection refused). What I did wrong? Please help. > > http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#setting-up-a-public-repository > http://dtcsupport.gplhost.com/Git/Public-Repo-Howto > > 0. Prepare your name and email address > cat ~gyang/.gitconfig > [user] > email = gyang@mycompany.com > name = Gary Yang > > > 1. Create an archive to send to the server > > /home/gyang% git clone http://git.gplhost.com/dtc-xen.git > > /home/gyang% git clone --bare dtc-xen dtc-xen.git > > /home/gyang% touch dtc-xen.git/git-daemon-export-ok > > /home/gyang% tar -cvzf dtc-xen.git.tar.gz dtc-xen.git > > > 2. Install the archive on the web server > > /pub/git% tar -xvzf /home/gyang/dtc-xen.git.tar.gz > > /pub/git/dtc-xen.git% git --bare update-server-info > > /pub/git/dtc-xen.git% mv hooks/post-update.sample hooks/post-update > > /pub/git/dtc-xen.git% chmod +x hooks/post-update > > /pub/git/dtc-xen.git% cat hooks/post-update > #!/bin/sh > # > # An example hook script to prepare a packed repository for use over > # dumb transports. > # > # To enable this hook, rename this file to "post-update". > > exec git-update-server-info > > > 3. Configure and start git daemon at the web server > > /pub/git/dtc-xen.git% grep 9418 /etc/services > git 9418/tcp # Git Version Control System > > > /pub/git/dtc-xen.git% sudo git daemon --verbose --inetd --export-all /pub/git & >
You shouldn't give "--inetd" when starting from command line. Do like this:
sudo git daemon --detach --verbose --export-all --base-path=/pub/git
Then clone dtc-xen.git using the following command:
git clone git://git.mycompany.com/dtc-xen.git test-git
Show 13 quoted lines
> > 4. At my local machine. I did > > /home/gyang% git clone git://git.mycompany.com/pub/git/dtc-xen.git test-git > > Initialized empty Git repository in //home/gyang/test-git/.git/ > git.mycompany.com[0: 10.66.4.168]: errno=Connection refused > fatal: unable to connect a socket (Connection refused) > > > ps -efww | grep git > root 9626 22321 0 11:31 pts/1 00:00:00 git-daemon --verbose --inetd --export-all /pub/git >
Yes, it's waiting for input from stdin, which is what "--inetd" does to a process. Do what I told you above and it'll work just grand.
For further troubleshooting, here are some things to try before asking about git-daemon again:
ping git.mycompany.com # should show reasonable response times
nc git.mycompany.com 9418 # should give "connection refused", or there's a bug somewhere
ip=$(host git.mycompany.com | sed -n 's/.*has address //p'); echo $ip # should list the proper ip address
ssh root@git.mycompany.com "ip addr show | grep 'inet $ip'" # should list one ip-address
ssh root@git.mycompany.com "ps -efww | grep git-daemon" # should list one process
ssh root@git.mycompany.com "netstat -tpan | grep 0.0.0.0:9418" # should list the git-daemon
ssh root@git.mycompany.com "grep git-daemon /var/log/messages" # might show error messages from git-daemon
-- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231