天天看點

Linux環境下SVN伺服器端的安裝與配置

最近嘗試了下在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

Linux環境下SVN伺服器端的安裝與配置

輸入已授權的使用者資訊登入即可通路資源位置。 

同樣的,可以通過右擊項目[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的資源庫,指令如下:

一切搞定!

本文為安裝配置完成後回想步驟記錄的博文,若有出入或遺漏之處還請指正,多多包涵!

繼續閱讀