農林漁牧網

您現在的位置是:首頁 > 畜牧業

Linux搭建SVN伺服器詳細教程

2022-01-10由 IT技術資源愛好者 發表于 畜牧業

svn是什麼工具

前言

本文講解Linux系統下如何搭建SVN伺服器,詳細說明各配置項的功能,最終實現可管控多個專案的複雜配置。

SVN是subversion的縮寫,是一個開放原始碼的版本控制系統,透過採用分支管理系統的高效管理,實現最終集中式的管理。

目前很多網際網路公司在使用SVN,優點在於使用方便、易於管理。與之對應的分散式的版本控制系統Git則更加靈活。

搭建

安裝SVN

//Ubuntuapt-get install subversion//Centosyum install subversion

檢視是否安裝成功,可以檢視版本。

svnserve ——version

Linux搭建SVN伺服器詳細教程

提示版本1。13。0,說明已安裝成功。

建立版本庫目錄

建立SVN版本庫目錄,為後面建立版本庫提供存放位置,也是最後啟動SVN服務的根目錄。

我們在/usr路徑下建立svn目錄作為版本庫目錄。

cd /usrmkdir svn

Linux系統各目錄知識延伸:

所以,將SVN庫存放在使用者檔案目錄/usr下比較合理。

建立SVN版本庫

在上一步建立路徑基礎上,建立版本庫,如dev。

cd /usr/svnsvnadmin create dev

建立成功後,可以檢視到dev目錄下生成的檔案。

Linux搭建SVN伺服器詳細教程

修改SVN配置

進入conf目錄,檢視需要修改的配置檔案。

cd /usr/svn/dev/confls

Linux搭建SVN伺服器詳細教程

配置檔案:

authz:許可權配置檔案,控制讀寫許可權

passwd:賬號密碼配置檔案

svnserve。conf:svn伺服器配置檔案

修改svnserve。conf檔案

vim svnserve。conf

Linux搭建SVN伺服器詳細教程

去掉anon-access、auth-access、password-db、authz-db、realm幾項前的註釋符號“#”。

配置項含義:

anon-access = none|read|write 決定非授權使用者的訪問級別。none 表示無訪問許可權,read 表示只讀,write 表示可讀可寫,預設為 read。

auth-access = none|read|write 決定授權使用者的訪問級別,使用與上面相同的訪問級別。預設為 write。

password-db = filename 指定賬號密碼資料庫檔名。filename 是相對倉庫中 conf 目錄的位置,也可以設定為絕對路徑,預設為passwd。

authz-db = filename 指定許可權配置檔名,filename 是相對倉庫中 conf 目錄的位置,也可以設定為絕對路徑,預設為authz。

realm = realm-name 指定版本庫的認證域,即在登入時提示的認證域名稱。若兩個版本庫的認證域相同,建議使用相同的賬號密碼資料庫檔案passwd。

認證域知識延伸:

在SVN客戶端登入時,會提示realm認證域,如下圖的認證域My First Repository。

修改passwd檔案

vim passwd

Linux搭建SVN伺服器詳細教程

只需在末尾新增賬號和密碼,格式 賬號 = 密碼,如user1 = 123456,可新增多個。

修改authz檔案

vim authz

在根目錄下設定user1、user2讀寫許可權:

Linux搭建SVN伺服器詳細教程

如果使用者比較多,可以使用groups形式設定分組team1,並在根目錄下指定分組@team1的許可權:

Linux搭建SVN伺服器詳細教程

如果想設定其他使用者的許可權,可以透過*設定,如設定除@team1分組外其他使用者只讀許可權:

[/]@team1 = rw* = r

啟動SVN服務

執行SVN啟動命令,其中引數-d表示以守護程序的方式啟動, -r表示設定的根目錄。

svnserve -d -r /usr/svn/

關閉svn命令:

killall svnserve

本地訪問SVN服務

在windows系統中,安裝TortoiseSVN軟體,建立一個本地目錄,右鍵選擇SVN Checkout測試下,URL填寫svn://IP/dev,dev替換成你建立的版本庫名稱。

Linux搭建SVN伺服器詳細教程

輸入passwd配置好的使用者。

Linux搭建SVN伺服器詳細教程

Checkout completed,SVN訪問成功,這就Nice了~

Linux搭建SVN伺服器詳細教程

擴充套件

設定檢視log日誌

想檢視提交的svn log日誌,需要進一步配置。

編輯svnserve。conf,設定:

anon-access = none

編輯authz檔案中新增:

[/]* =

這樣透過滑鼠右鍵TortoiseSVN->show log就可以檢視svn提交的歷史記錄了。

多個專案管控配置

SVN配置檔案是很靈活的,如果想使用統一的賬戶和許可權去管控多個專案,可以將多個專案的authz和passwd檔案統一放在一處,在多個專案的svnserve。conf檔案中配置這兩個檔案的絕對路徑,並在authz中對不同的專案設定使用者訪問許可權。

如:a、b、c、d這4個使用者,p1、p2兩個專案,其中a、b只能訪問p1,c、d只能訪問p2。

建立版本庫目錄

mkdir /usr/svn

建立多個版本庫

cd /usr/svnsvnadmin create p1svnadmin create p2

建立管理使用者許可權目錄

mkdir /var/svn/confcd /p1/confcp authz passwd /var/svn/conf

修改配置檔案

修改p1的svnserve。conf檔案:

anon-access = noneauth-access = write password-db = /var/svn/conf/passwd authz-db = /var/svn/conf/authz realm = p1

修改p2的svnserve。conf檔案:

anon-access = noneauth-access = writepassword-db = /var/svn/conf/passwdauthz-db = /var/svn/conf/authzrealm = p2

password-db和authz-db都使用統一管理使用者許可權目錄,使用絕對路徑。

修改password-db檔案

[users]a = 123b = 123c = 123d = 123

修改authz檔案

[groups] //分組p1user = a,bp2user = c,d[/]* = #以上沒有定義的使用者都沒有任何許可權[p1:/] //p1的訪問控制,c、d無法訪問@p1user = rw[p2:/] //p2的訪問控制,a、b無法訪問@p2user = rw

對password-db和authz檔案的修改立即生效,不必重啟svn。

啟動svn服務

svnserve -d -r /usr/svn/

訪問不同專案SVN

同樣TortoiseSVN軟體,選擇SVN Checkout測試。

訪問專案p1 URLsvn://IP/p1訪問專案p2 URLsvn://IP/p1

統一的配置檔案,不同專案限定了不同使用者訪問,這樣就實現了管控多個專案的SVN配置。

以上就是Linux系統搭建SVN伺服器詳細教程的所有內容,希望對大家有所幫助。