Ubuntu server 搭建Git server,git相比svn,最主要就是分布式了,每一个客户端用户的本地都是一个版本管理控制器。python
Ubuntu server 版本为12.04git
搭建步骤以下:github
一、更新Ubuntu servershell
操做以下:bash
$ apt-get update服务器
$ apt-get upgradessh
如上命令更新并升级系统,防止在安装git过程当中,出现部分依赖包没有安装。分布式
二、安装openssh的server和clientsvn
其实一般状况下,Ubuntu server都默认安装了openssh。安装SSH的目的,SSH 协议用于为 Git 提供远程读写操做,是远程写操做的标准服务,ssh可用于远程登陆,服务端须要安装openssh-server,客户端须要安装openssh-client。介绍ssh协议是由于gitolite以及gitosis都是基于ssh公钥认证的。工具
安装openssh以前,能够先查看是否安装过
$ ps -ef | grep ssh
若是没有,就继续以下安装步骤,
$ sudo apt-get install openssh-server openssh-client
三、安装git
$ sudo apt-get install git-core
安装完毕便可!
四、配置git用户
在Ubuntu Server上新增一个git用户,用于为安装gitosis作准备
$ sudo adduser --system --shell /bin/bash --group git // 建立用户 git,并设置用户的 shell 为可登陆的 shell,如 /bin/bash,同时添加同名的用户组。
$ sudo adduser git ssh // 有的系统,只容许特定的用户组(如 ssh 用户组)的用户才能够经过 SSH 协议登陆,这就须要将新建的 git 用户添加到 ssh 用户组中。
$ sudo passwd git // 为 git 用户设置口令。
$ ssh-copy-id git@server // 管理员在客户端使用下面的命令,创建无口令登陆。
五、建立git Server的仓库存储
$ sudo mkdir /home/git/repositories // 建立git仓库存储目录
$ sudo chown git:git /home/git/repositories // 设置只容许git用户才能访问此目录
$ sudo chmod 755 /home/git/repositories // 设置目录访问的可读写或执行的权限
初始化一下服务器的git用户,这一步实际上是为了安装gitosis作准备。在任何一 台客户端机器上使用git,第一次须要初始化一下:
$ git config --global user.name "name" // 例如:james
$ git config --global user.email "name@server" // 例如:james@yahoo.com
六、获取Gitosis,并安装
Gitosis 就是一套用来管理 authorized_keys
文件和实现简单链接限制的脚本。简单地说,Gitosis就是git的权限策略控制器。
由于Gitosis源码安装方式经过python方式,因此这里要检测是否安装了python的setup tool,没有即安装此工具, 这个也是为了gitosis作准备:
$ sudo apt-get install python-setuptools
去到一个临时目录
$ cd /tmp
$ git clone https://github.com/res0nat0r/gitosis.git // 下载Gitosis的源代码
$ cd /tmp/gitosis
$ sudo python setup.py install
说明:Gitosis有一个改进的升级版Gitolite,这里以安装Gitosis为标准,因此不对Gitolite介绍。Gitosis安装完以后,即Git服务器就安装完成,接下来,须要为Git设置一个管理员,经过Gitosis初始化以后,才能正常使用Git做为版本控制进行相关版本管理。
下一节,将详细描述经过建立Git管理员来初始化Git Server,并详细描述Git在Windows下做为客户端如何使用。