网络查找资料虽然很方便,但是网上很多人转载文章都是不负责任的....
搭建这个git服务器老是不成功.重启git总是运行不起来,,,特别是那个网上说的sv git-daemon restart命令,老是出错.
而自己将命令敲进去到是可以.. 对于这点,当然可以加到/etc/rc.local或者profile文件解决..但本人想要一个更*完美*的方法(每个人理解不同)
并且搜来搜去,都是转载的一篇文章!
本文与网上普遍转载的那篇文章有所不同.
本文所用的方法
使用的系统ubuntu 12.10
步骤:
1.安装
这个不用多说,ubuntu下安装很简单
sudo apt-get install git-all这样就安装了git和git-daemon等等.
2.安装启动运行时的工具
sudo apt-get install git-daemon-sysvinit网上转载的那篇用的是git-daemon-run,,本文使用的是git-daemon-sysvinit...
3.配置文件
这个地方前面遇到了一些问题,,然后我又一步步的分析/etc/init.d/git-daemon脚本文件,最后才找到配置的方法.
配置文件在/etc/default/git-daemon
打开编辑
sudo vi /etc/default/git-daemon我的配置文件内容如下(后面会具体参数的意义)
我使用的作为git仓库的目录为/home/git/repositories....你们就改成自己相同的就行了.
# Defaults for git-daemon initscript
# sourced by /etc/init.d/git-daemon # installed at /etc/default/git-daemon by the maintainer scripts # # This is a POSIX shell fragment # GIT_DAEMON_ENABLE=true GIT_DAEMON_USER=git GIT_DAEMON_DIRECTORY="/var/cache/git /home/git/repositories" # Additional options that are passed to the Daemon. GIT_DAEMON_OPTIONS="--export-all --enable=upload-pack --enable=upload-archive --enable=receive-pack --informative-errors" GIT_DAEMON_BASE_PATH=/home/git/repositories
GIT_DAEMON_ENABLE=true很明显得设置成true值了
GIT_DAEMON_USER=git 这个就看你想用哪个用户运行git-daemon.一般为了安全都得设置别的用户...
注意!!设置的这个用户一定得对GIT_DAEMON_BASE_PATH有读,写,执行的所有权限!! 可以用ls -ld git仓库目录,查看为drwx
如果你的git仓库放在自己的个人目录下即/home/use_name下面的话,那设置成你的用户名准没错.
GIT_DAEMON_DIRECTORY="/var/cache/git /home/git/repositories" 这个是设置成目录白名单whitelist!! 如果不设置的话用户在git操作时如git clone,git push等等会出现no such directory. 而在服务器机器上/var/log/syslog中会看到'/home/git/repositories/xxx.git': not in whitelist
GIT_DAEMON_OPTIONS 就是设置参数了.如果想上传,且全部导出.就设置--export-all --enable=upload-pack --enable=upload-archive --enable=receive-pack
注意!如果出现找不到的话,就在/home/git/repositories目录下面的项目仓库目录下touch git-daemon-export-ok..生成一个这个名字的文件即可.
如果想使用git push功能,那一定要打开--enable=receive-pack
最后一个
GIT_DAEMON_BASE_PATH 即设置根目录.比如像我的这个设置.
那么你在用git clone git://your ip or name/test.git时,git服务器就会查换/home/git/repositories/test.git目录了.
以上设置好了只后,,那么每次开机就会自己启动了.
还可以使用sudo service git-daemon start|restart|stop控制. sudo /etc/init.d/git-daemon start|restart|stop也可以了.