Ubuntu server 搭建Git server,git相比svn,最主要就是分布式了,每個客戶端用戶的本地都是一個版本管理控制器。
Ubuntu server 版本為12.04
搭建步驟如下:
1、更新Ubuntu server
操作如下:
$ apt-get update
$ apt-get upgrade
如上命令更新並升級系統,防止在安裝git過程中,出現部分依賴包沒有安裝。
2、安裝openssh的server和client
其實通常情況下,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
3、安裝git
$ sudo apt-get install git-core
安裝完畢即可!
4、配置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 // 管理員在客戶端使用下面的命令,建立無口令登錄。
5、創建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
6、獲取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下作為客戶端如何使用。