天天看點

SVN CentOS7 下配置svn的安裝及基礎配置介紹

CentOS7 下配置svn的安裝及基礎配置介紹

by:授客 QQ:1033553122

目錄

一、         實踐環境... 1

二、         安裝作業系統... 1

三、         安裝SVN. 1

四、         基礎配置... 2

五、         啟動SVN. 7

六、         用戶端通路... 8

七、         常見問題排查... 8

一、      實踐環境

CentOS 7作業系統(CentOS-7-x86_64-DVD-1503-01.iso)

下載下傳位址:http://ftp.riken.jp/Linux/centos/7/isos/x86_64/

二、      安裝作業系統

軟體選擇(SOFTWARE SELECTION):

SVN CentOS7 下配置svn的安裝及基礎配置介紹

三、     

安裝SVN

[root@localhost

~]# yum

install subversion

檢視是否安裝安裝成功

~]# svnserve

--version

svnserve, version

1.7.14 (r1542130)

compiled Jun  9 2014,

18:54:44

Copyright (C)

2013 The Apache Software Foundation.

This software

consists of contributions made by many people; see the

NOTICE

file for more

information.

Subversion is

open source software, see http://subversion.apache.org/

The following

repository back-end (FS) modules are available:

*

fs_base : Module for working with a Berkeley DB

repository.

fs_fs : Module for working with a plain file (FSFS)

Cyrus SASL

authentication is available.

四、     

基礎配置

建立一個空檔案夾,例如

svn,作為所有版本庫的根目錄

~]# mkdir -p /svn/

進入svn目錄,建立版本庫,比如

repo

~]# cd

/svn/

svn]# svnadmin

create --fs-type fsfs repo

#

檢視repo目錄檔案

svn]# cd repo/

repo]# ls

conf 

db  format  hooks 

locks  README.txt

[root@localhost repo]# cd conf/

[root@localhost conf]# ls

authz 

passwd 

svnserve.conf

檔案說明:

1、svnserve.conf檔案

該檔案用于控制svnserve守護程序(svnserve

daemon)的配置,以便通路svn版本庫。如果僅是通過http://

或者file:URLs方式通路版本庫,則與該檔案配置不起作用。

[general]結點

anon-access(匿名通路)和auth-access(認證通路)選項,分别用于控制未認證使用者和與認證使用者對svn版本庫的通路,其可選值包含

write,read,none,如果設定為none則無對版本庫的讀寫通路權限;設定為write則有可讀可寫權限;設定為read則隻有讀權限。

password-db用于控制密碼資料庫檔案的位置,除非指定了一個帶符号‘/’

的路徑,否則檔案的位置為包含該配置檔案的相對路徑,如果開啟了SASL,則該檔案配置不起作用。

authz-db選項控制基于路徑通路控制的認證規則的位置。除非指定了帶‘/’的路徑,否則該檔案位置為包含該配置檔案的相對位置。如果不指定authz-db,則沒有基于路徑的通路控制。

realm

選項指定了版本庫的認證域(authentication

realm)。如果兩個版本庫有同樣的認認證域(authentication

realm),他們應該有相同的密碼資料庫,反之亦然。預設的

realm為版本庫的uuid

force-username-case

選項,在authz-db檔案配置的規則下,讓svnserve比較使用者名之前,規範化使用者名大小寫(case-normalize)。合法值有

lowser

轉小寫;upper轉大寫;none采用預設的,不進行大小寫轉化。

[sasl]結點

用于指定是否為認證使用 Cyrus

SASL類庫。預設的false。如果svnserve不帶Cyrus

SASL支援編譯的,那麼該小節會被忽略。運作'svnserve

--version,查找如下行'Cyrus

SASL authentication is available.'

則表示支援。

該選項指定了想讓SASL提供的安全級别,0表示加密,1表示僅內建檢查,大于1的的值是和用于加密的有效密匙長度相關的。

(e.g.

128

代表 128-bit加密).

預設值如下

min-encryption = 0

max-encryption = 256

2、password檔案

該檔案為svnserve密碼檔案執行個體,每行代表一個svn使用者賬戶

[users]

使用者名1

=

使用者密碼1

使用者名2

使用者密碼2

……

使用者名n

使用者密碼n

3、authz檔案

該檔案為svnserve認證執行個體檔案,定義路徑和版本庫(可選)的認證

其中每一行記錄可能代表

1)單個使用者

2)定義的一組使用者([groups]節點中定義的

3)定義的一個别名([aliases]節點中定義的

4)使用$authenticated

token的所有認證使用者

5)僅使用$anonymous

token的匿名使用者

6)* 

任何人

[aliases]

暫時隻知道是設定别名,但是具體是怎麼定義的,不是很清楚,先不管吧

[groups]

自定義分組名1

使用者1,使用者2,……

自定義分組名2

使用者3,使用者4,……

自定義分組名n

使用者n1,使用者n2,……

說明:使用者名之間用英文逗号分隔

[repository_name:dir_path]

權限1

權限2

權限n

@自定義分組名1

@自定義分組名2

@自定義分組名n

&别名1

&别名2

&别名n

* =

權限

[dir_path]

說明:

1) [repository_name:dir_path]表示名為repository_name的版本庫的dir_path目錄,比如

[repo:/]表示repo版本的庫的根目錄

舉例:

svn版本庫目錄結構為:/svn/repo,,其中/svn為所有版本庫的根,repo為其中一個版本庫名稱,啟動方式:svnserve

-d -r /svn/,

SVN CentOS7 下配置svn的安裝及基礎配置介紹

那麼可以如下設定

[repo:/] /代表

[repo:/test1]

[repo:/test1/test2]

如果隻有一個版本庫,等效做法如下

[/]

[/test1]

[/test1/test2]

其中,test1,test2都是通過svn用戶端建立的目錄

3)

權限可為r、w、rw,分别代表隻可讀,隻可寫,可讀可寫,這裡r、w、rw隻針對dir_path最後層級的目錄生效

例:

shouke = rw

那麼svn:192.168.1.103/test1

進行通路,會提示認證失敗

4)

别名,使用者名,自定義分組不分先後順序

5)

權限,如果無任何權限則不填寫,直接

* = 

,這裡,*表示除了指定的使用者,自定義分組,别名之外的任何人

修改svnserve.conf配置

conf]# vim svnserve.conf

找到如下内容

[general]

……(略)

anon-access = read

auth-access = write

改成如下内容

anon-access =

none

auth-access =

write

#password-db =

passwd

password-db =

password

authz-db = authz

authz-db =

authz

[sasl]

use-sasl = true

use-sasl =

true

新增svn使用者

conf]# useradd shouke

conf]# passwd shouke

Changing password

for user shouke.

New

password:

BAD PASSWORD: The

password is shorter than 8 characters

Retype new

passwd: all

authentication tokens updated successfully.

conf]# vim passwd

說明:使用者密碼 123456

修改password配置檔案

找到如下内容,

harry = harryssecret

sally = sallyssecret

在其下新增帶背景色内容,如下

shouke=123456

修改authz配置檔案

conf]# vim authz

harry_and_sally = harry,sally

harry_sally_and_joe = harry,sally,&joe

在其下新增一行内容,如下

group1 = shouke

[repository:/baz/fuz]

@harry_and_sally = rw

* = r

在其下新增内容,如下

[repo:/]

@group1 = rw

五、     

啟動SVN

conf]# svnserve

-d -r /svn/

說明:-d

表示以daemon的方式運作,-r

dir_path

表示把dir_path當作版本庫的根目錄,比如

/svn/repo,svn://192.168.1.103/repo,通路的就是/svn/repo

檢視

conf]# netstat -antp | grep svn

tcp       

0 0.0.0.0:3690           

0.0.0.0:*              

LISTEN     

8474/svnserve  

說明:如上,預設端口為3690

六、     

用戶端通路

測試用戶端版本:TortoiseSVN-1.9.1.26747-win32-svn-1.9.1.1441852914.msi

SVN CentOS7 下配置svn的安裝及基礎配置介紹

七、     

常見問題排查

1.Unable to

connect to repository at url ‘svn://…’ No repositroy found at

snv://……,如下

SVN CentOS7 下配置svn的安裝及基礎配置介紹

說明:通路方式不對,

1)類似svnserve

-d -r /svn/

方式(即指定路徑作為根目錄)開啟的svn服務,正确的通路方式svn://192.168.1.103/repo

即svn://ip[:port]/repository_name

2)不指定路徑作為版本庫的跟目錄裡,svnserve

-d

方式開啟的svn服務,正确的通路方式svn://192.168.1.103/svn/repo

即svn://[:port]/path_of_repository

2、

please wait

while the repository browser is initializing

說明:防火牆阻止了端口,解決方法(centos7下測試),開放端口

conf]# firewall-cmd --permanent --zone=public

--add-port=3690/tcp

success

conf]# firewall-cmd --reload

3、類似如下,目标計算機積極拒絕或者

SVN CentOS7 下配置svn的安裝及基礎配置介紹
SVN CentOS7 下配置svn的安裝及基礎配置介紹

說明:伺服器svnserve未開啟

作者:授客

QQ:1033553122

全國軟體測試QQ交流群:7156436

Git位址:https://gitee.com/ishouke

友情提示:限于時間倉促,文中可能存在錯誤,歡迎指正、評論!

作者五行缺錢,如果覺得文章對您有幫助,請掃描下邊的二維碼打賞作者,金額随意,您的支援将是我繼續創作的源動力,打賞後如有任何疑問,請聯系我!!!

           微信打賞                       

支付寶打賞                  全國軟體測試交流QQ群  

SVN CentOS7 下配置svn的安裝及基礎配置介紹
SVN CentOS7 下配置svn的安裝及基礎配置介紹
SVN CentOS7 下配置svn的安裝及基礎配置介紹

繼續閱讀