最近嘗試了下在Linux(CentOS6.5)環境下安裝與配置SVN伺服器端,安裝過程中碰到了一些問題,參看了網友們分享的一些心得,并通過自己實際的操作,最終安裝與配置成功!總的來說網上的說法芸芸,大緻都相同,但是有些細節不夠詳細或者不夠到位,是以根據自己親身經曆,記錄下安裝與配置過程,僅供大家參看以及自己之後再次使用提供友善。
該編部落格為安裝配置完成之後寫的,是以如果有遺漏操作,還請大家批評指正。
下面開始:
我下載下傳的是subversion-1.8.15版本。
下載下傳好的壓縮包置于目錄 /opt/env 下(根據大家實際需要自行選擇)。
Linux解壓指令
指令格式:
1
解壓後/opt/env目錄下出現檔案夾subversion-1.8.15,
為了友善,順便建立軟連結:
建立軟連結之後通路 svn目錄即相當于通路subversion-1.8.15
安裝非常簡單,解壓後即已經安裝完成。接下來是配置。
我選擇的目錄是 /home/svn/作為SVN版本庫的根目錄。
建立/svn目錄:
比如,現在我有一個名為“project”的項目需要用SVN做版本管理,那麼我可以在svn根目錄下建立一個 /project目錄,我最終目的想讓項目托管到/project目錄下。接下來我需要建立這個目錄:/home/svn/project 。
指令如下:
然後需要将/project目錄設定為版本庫,指令如下:
設定/project目錄為版本庫後,會發現/project目錄下會多出以下檔案:
2
3
4
5
6
7
8
9
接下來的配置就在/conf檔案夾中的檔案:
svnserve.conf
passwd
authz
我們可以看到,conf目錄下共有三個檔案:svnserve.conf、passwd、authz。
svnserve的配置主要就是對這三個檔案的配置。
提示:快速看一遍就好,盡快轉入下方“言歸正傳”。
- svnserve.conf
svn服務配置檔案,該檔案版本庫目錄的conf目錄下,檔案名為svnserve.conf。
[general]配置段中配置行格式:
<配置項> = <值>
配置項分為以下5項:
anon-access控制非鑒權使用者通路版本庫的權限。取值範圍為”write”、”read”和”none”。
即”write”為可讀可寫,”read”為隻讀,”none”表示無通路權限。
預設值:read
auth-access控制鑒權使用者通路版本庫的權限。取值範圍為”write”、”read”和”none”。
預設值:write
password-db 指定使用者名密碼檔案名。除非指定絕對路徑,否則檔案位置為相對conf
目錄的相對路徑。
預設值:passwd
authz-db 指定權限配置檔案名,通過該檔案可以實作以路徑為基礎的通路控制。
除非指定絕對路徑,否則檔案位置為相對conf目錄的相對路徑。
預設值:authz
realm 指定版本庫的認證域,即在登入時提示的認證域名稱(就是個作為提示用的,不用太糾結)。
- passwd
使用者名密碼檔案,該檔案名在檔案svnserve.conf中指定,預設為同目錄下的passwd。
該檔案僅由一個[users]配 置段組成。
[users]配置段的配置行格式如下:
<使用者名> = <密碼>
注意:配置行中的密碼為未經過任何處理的明文。
例:使用者名密碼檔案conf/passwd的内容如下:
[users]
admin = admin
zhangsan = 123456
該檔案中配置了兩個使用者,使用者名分别為”admin”和”zhagnsan”。其中”admin”使用者的密碼為”admin”;”zhangsan”使用者的口 令為”123456”。
- authz
權限配置檔案,該檔案名也在檔案svnserve.conf中指定,預設為同目錄下的authz。
該配置檔案由一個[groups]配置段和 若幹個版本庫路徑權限段組成。
[groups]配置段中配置行格式如下:
<使用者組> = <使用者清單>
使用者清單由若幹個使用者組或使用者名構成,使用者組或使用者名之間用逗号”,”分隔,引用使用者組時要使用字首”@”(如:引用使用者組”all”要使用字元 串”@all”)。
版本庫路徑權限段的段名格式如下:
[<版本庫名>:<路徑>]
如版本庫abc路徑/tmp的版本庫路徑權限段的段名為”[abc:/tmp]”。
可省略段名中的版本庫名。若省略版本庫名,則該版本庫路徑權限段對所有版本庫中相同路徑的通路控制都有效。如:段名為”[/tmp]”的版本庫路徑權限段 設定了所有引用該權限配置檔案的版本庫中目錄”/tmp”的通路權限。
版本庫路徑權限段中配置行格式有如下三種:
<使用者名> = <權限>
<使用者組> = <權限>
* = <權限>
其中,”*”表示任何使用者;權限的取值範圍為”、’r’和’rw’,”表示對該版本庫路徑無任何權限,’r’表示具有隻讀權限,’rw’表示有讀寫權 限。
注意:每行配置隻能配置單個使用者或使用者組。
例3:權限配置檔案conf/authz的内容如下:
[groups]
g_admin = admin,zhangsan
[admintools:/]
@g_admin = rw
* =
[test:/home/zhangsan]
zhangsan = rw
* = r
在上述配置檔案中,定義了一個使用者組”g_admin”,該使用者組包含使用者”admin”和”zhangsan”。然後定義了2個版本庫路徑權限段。其中, 版本庫”admintools”隻有使用者組”g_admin”可讀寫,其他使用者無任何權限;版本庫”test”中路徑”/home/zhangsan”隻有 使用者”zhangsan”有讀寫權限,其他使用者隻有可讀權限。
(1). 配置svnserve.conf
vi指令編輯svnserve.conf,insert進入編輯模式,放開以上選項,ESC :wq儲存。設定非鑒權使用者無權通路、設定鑒權使用者可讀寫、密碼及權限配置參照conf目錄下passwd和authz的配置。
重要提醒!!:首行不可以留白,要頂行,否則會造成SVN識别為配置錯誤。
(2). 配置passwd
配置了一個使用者為“rokay”,密碼為“123456”的使用者。
(3). 配置authz
配置了一個管理者群組“g_admin”,包含使用者“rokay”;
“[/]”表示對根目錄“trunk”的權限配置。
配置了“g_admin”群組對于該目錄下的權限為“rw“(讀、寫)權限。
* = 配置了除群組”g_admin“外的其他使用者均無權通路。
注意:也可以用“,”分隔多個使用者或者@+群組名稱的方式配置多使用者,參看上方說明。
綜上,就完成了對三個檔案也就是svnserve的配置了。
輸入指令:
注意:/svn目錄為版本庫的根目錄,是以路徑僅到/svn即可。
此時,SVN伺服器的配置以及版本庫已經建立完成!
現以已內建了SVN插件的eclipse為例,在SVN資源庫中 [建立]—[資源庫位置],URL輸入:
svn://[伺服器IP位址]/project

輸入已授權的使用者資訊登入即可通路資源位置。
同樣的,可以通過右擊項目[team]—[share],輸入以上URL将項目共享至建立的SVN版本庫中。
注意:上述位址中沒有”/svn”這一級目錄,”/svn”為版本庫根目錄,不用輸入。
若要在/svn目錄下添加新的版本庫,直接建立相應的目錄,然後設定為版本庫,最後配置即可,不需要重新運作svnserve -d -r /home/svn,也不需要把該指令應用到/svn目錄下你所建立的目錄,如果因為誤操作執行了以上指令,會導緻資源庫不可用,再次運作svnserve -d -r /home/svn也會報:“不能綁定伺服器套接字 位址已在使用”的錯誤字樣“(若已至此,删除掉建立的資源庫,并用ps -ef | grep svnserve檢視程序,kill -9 [程序号] 殺掉,重新執行svnserve -d -r /home/svn,再次建立資源庫,直接配置即可使用)
比如在/svn目錄下另外建立一個project2的資源庫,指令如下:
一切搞定!
本文為安裝配置完成後回想步驟記錄的博文,若有出入或遺漏之處還請指正,多多包涵!