配置gitosis(以CentOS為例)

此頁由 Linux Wiki用戶Chenxing 於 2010年12月15日 (星期三) 21:57 的最後更改。

出自Linux Wiki

提示:此文已超过 5 年(2178 天)未更新,如发现内容过时或有误,欢迎改进:)

Git是當下流行的版本控制軟件,gitosis使管理Git服務器的流程大大簡化。本文以CentOS為例介紹配置gitosis的流程,它也適用於多數發行版。

Hint.gif
提示:
如果建立的是公開的版本庫,可以直接用GitHub等平台而無需自己架設服務器。

目錄

安裝軟件

首先安裝git和gitosis,多數發行版的倉庫有這兩個軟件。CentOS則需要先添加EPEL軟件倉庫。[1]如果你的發行版里沒有這兩個軟件,就直接去網站上安裝吧。

根據不同發行版軟件包的不同,安裝後系統會做一定的配置。請查看/etc/passwd,看看是不是已經出現了新的跟git有關的用戶,(比如CentOS中會出現名為gitosis的用戶)。如果沒有,則需要自己添加一個用戶,所有跟git代碼庫有關的讀寫將通過這個用戶完成,如

sudo adduser --system --shell /bin/sh --gecos 'git user' --group --disabled-password --home /home/gitosis gitosis

準備管理員密鑰

這裡需要說明,gitosis的配置文件是用Git管理的,用戶的認證則是通過密鑰。首次初始化gitosis時,需要提供一個管理員帳戶,該帳戶可處於任何電腦上,用其密鑰做為身份標誌。

所以要先準備一個管理員密鑰,這可以在服務器上做,也可以在客戶機上做:

ssh-keygen -t rsa

注意不要修改產生的文件的位置(默認在~/.ssh/中),密碼可以不輸(該密碼只是用來保護密鑰文件的)。這樣將在~/.ssh中生成id_rsaid_rsa.pub兩個文件,前者是密鑰(如同密碼,注意保護),後者是公鑰。如果是在客戶機上操作的,需要把公鑰傳到服務器上。假設這個文件叫id_rsa.pub

初始化gitosis

現在回到服務器上,id_rsa.pub已經準備好,當前用戶是root。執行如下命令:

sudo -H -u gitosis gitosis-init < [path of your id_rsa.pub]

注意第一個gitosis是git帳戶的用戶名,如果你的發行版名字不同請做相應更改。-H選項很重要,因為代碼庫要放到gitosis的Home目錄里, 不是root的。

至此,gitosis服務器已經配置完畢,接下來對用戶、項目的控制要通過Git完成。

獲取配置文件

在剛才生成密鑰的電腦上,用git clone獲取配置文件

git clone gitosis@example.com:gitosis-admin.git

注意將example.com改成服務器的域名。

我們將得到一個gitosis-admin文件夾,它裡面有gitosis.conf文件和一個叫keydir/的子文件夾。[2]

首先,keydir/是存放用戶公鑰的一些.pub文件,用戶名對應pub文件的文件名(不含.pub後綴),要添加用戶時,讓用戶按前面的方法準備一個密鑰,並對相應的.pub文件放在keydir里,命好名就行了。

用戶權限的管理則是通過這個gitosis.conf文件,如以下代碼段建一個名為test的組,有t1、t2兩個成員,他們可以讀寫testProj項目:

[group test]
writable = testProj
members = t1 t2

更多的例子請參閱gitosis的文檔[3]

每次配置好後,按照Git的風格,需要commit、push到服務器端。修改是立即生效的。

相關資料

  1. Howto: Install git, gitosis & gitweb on CentOS 5
  2. Gitosis - Archwiki
  3. gitosis - SWiK

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
简体繁体转换