新聞中心
centos 7 下SVN的安裝及基礎(chǔ)配置介紹

創(chuàng)新互聯(lián)建站是一家以網(wǎng)站建設(shè)公司、網(wǎng)頁設(shè)計、品牌設(shè)計、軟件運維、網(wǎng)站推廣、小程序App開發(fā)等移動開發(fā)為一體互聯(lián)網(wǎng)公司。已累計為軟裝設(shè)計等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開發(fā)服務(wù)。
一、實踐環(huán)境
二、安裝操作系統(tǒng)
三、安裝SVN
四、基礎(chǔ)配置
五、啟動SVN
六、客戶端訪問
七、常見問題排查
一、實踐環(huán)境
CentOS 7操作系統(tǒng)(CentOS-7-x86_64-DVD-1503-01.iso)
下載地址:http://ftp.riken.jp/Linux/centos/7/isos/x86_64/
二、安裝操作系統(tǒng)
軟件選擇(SOFTWARE SELECTION):
三、安裝SVN
[root@localhost ~]# yum install subversion
查看是否安裝安裝成功
[root@localhost ~]# 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) repository.
Cyrus SASL authentication is available.
四、基礎(chǔ)配置
創(chuàng)建一個空文件夾,例如 svn,作為所有版本庫的根目錄
[root@localhost ~]# mkdir -p /svn/
進入svn目錄,創(chuàng)建版本庫,比如 repo
[root@localhost ~]# cd /svn/
[root@localhost svn]# svnadmin create --fs-type fsfs repo
# 查看repo目錄文件
[root@localhost svn]# cd repo/
[root@localhost 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]結(jié)點
anon-access(匿名訪問)和auth-access(認(rèn)證訪問)選項,分別用于控制未認(rèn)證用戶和與認(rèn)證用戶對svn版本庫的訪問,其可選值包含 write,read,none,如果設(shè)置為none則無對版本庫的讀寫訪問權(quán)限;設(shè)置為write則有可讀可寫權(quán)限;設(shè)置為read則只有讀權(quán)限。
password-db用于控制密碼數(shù)據(jù)庫文件的位置,除非指定了一個帶符號‘/’ 的路徑,否則文件的位置為包含該配置文件的相對路徑,如果開啟了SASL,則該文件配置不起作用。
authz-db選項控制基于路徑訪問控制的認(rèn)證規(guī)則的位置。除非指定了帶‘/’的路徑,否則該文件位置為包含該配置文件的相對位置。如果不指定authz-db,則沒有基于路徑的訪問控制。
realm 選項指定了版本庫的認(rèn)證域(authentication realm)。如果兩個版本庫有同樣的認(rèn)認(rèn)證域(authentication realm),他們應(yīng)該有相同的密碼數(shù)據(jù)庫,反之亦然。缺省的 realm為版本庫的uuid
force-username-case 選項,在authz-db文件配置的規(guī)則下,讓svnserve比較用戶名之前,規(guī)范化用戶名大小寫(case-normalize)。合法值有 lowser 轉(zhuǎn)小寫;upper轉(zhuǎn)大寫;none采用默認(rèn)的,不進行大小寫轉(zhuǎn)化。
[sasl]結(jié)點
用于指定是否為認(rèn)證使用 Cyrus SASL類庫。默認(rèn)的false。如果svnserve不帶Cyrus SASL支持編譯的,那么該小節(jié)會被忽略。運行'svnserve --version,查找如下行'Cyrus SASL authentication is available.'則表示支持。
該選項指定了想讓SASL提供的安全級別,0表示加密,1表示僅集成檢查,大于1的的值是和用于加密的有效密匙長度相關(guān)的。 (e.g. 128 代表 128-bit加密). 默認(rèn)值如下
# min-encryption = 0
# max-encryption = 256
2、password文件
該文件為svnserve密碼文件實例,每行代表一個svn用戶賬戶
[users]
用戶名1 = 用戶密碼1
用戶名2 = 用戶密碼2
……
用戶名n = 用戶密碼n
3、authz文件
該文件為svnserve認(rèn)證實例文件,定義路徑和版本庫(可選)的認(rèn)證
其中每一行記錄可能代表
1)單個用戶
2)定義的一組用戶([groups]節(jié)點中定義的
3)定義的一個別名([aliases]節(jié)點中定義的
4)使用$authenticated token的所有認(rèn)證用戶
5)僅使用$anonymous token的匿名用戶
6)* 任何人
[aliases]
暫時只知道是設(shè)置別名,但是具體是怎么定義的,不是很清楚,先不管吧
[groups]
自定義分組名1 = 用戶1,用戶2,……
自定義分組名2 = 用戶3,用戶4,……
……
自定義分組名n = 用戶n1,用戶n2,……
說明:用戶名之間用英文逗號分隔
[repository_name:dir_path]
用戶名1 = 權(quán)限1
用戶名2 = 權(quán)限2
……
用戶名n = 權(quán)限n
@自定義分組名1 = 權(quán)限1
@自定義分組名2 = 權(quán)限2
……
@自定義分組名n = 權(quán)限n
&別名1 = 權(quán)限1
&別名2 = 權(quán)限2
……
&別名n = 權(quán)限n
* = 權(quán)限
[dir_path]
用戶名1 = 權(quán)限1
用戶名2 = 權(quán)限2
……
用戶名n = 權(quán)限n
@自定義分組名1 = 權(quán)限1
@自定義分組名2 = 權(quán)限2
……
@自定義分組名n = 權(quán)限n
&別名1 = 權(quán)限1
&別名2 = 權(quán)限2
……
&別名n = 權(quán)限n
* = 權(quán)限
說明:
1) [repository_name:dir_path]表示名為repository_name的版本庫的dir_path目錄,比如 [repo:/]表示repo版本的庫的根目錄
舉例:
svn版本庫目錄結(jié)構(gòu)為:/svn/repo,,其中/svn為所有版本庫的根,repo為其中一個版本庫名稱,啟動方式:svnserve -d -r /svn/,
那么可以如下設(shè)置
[repo:/] /代表 /svn/
[repo:/test1]
[repo:/test1/test2]
如果只有一個版本庫,等效做法如下
[/]
[/test1]
[/test1/test2]
其中,test1,test2都是通過svn客戶端創(chuàng)建的目錄
3) 權(quán)限可為r、w、rw,分別代表只可讀,只可寫,可讀可寫,這里r、w、rw只針對dir_path最后層級的目錄生效
例:
[repo:/test1/test2]
shouke = rw
那么svn:192.168.1.103/test1 進行訪問,會提示認(rèn)證失敗
4) 別名,用戶名,自定義分組不分先后順序
5) * = 權(quán)限,如果無任何權(quán)限則不填寫,直接 * = ,這里,*表示除了指定的用戶,自定義分組,別名之外的任何人
修改svnserve.conf配置
[root@localhost conf]# vim svnserve.conf
找到如下內(nèi)容
[general]
……(略)
# anon-access = read
# auth-access = write
改成如下內(nèi)容
[general]
……(略)
anon-access = none
auth-access = write
找到如下內(nèi)容
#password-db = passwd
改成如下內(nèi)容
password-db = password
找到如下內(nèi)容
# authz-db = authz
改成如下內(nèi)容
authz-db = authz
找到如下內(nèi)容
[sasl]
……(略)
# use-sasl = true
改成如下內(nèi)容
[sasl]
……(略)
use-sasl = true
新增svn用戶
[root@localhost conf]# useradd shouke
[root@localhost conf]# passwd shouke
Changing password for user shouke.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost conf]# vim passwd
說明:用戶密碼 123456
修改password配置文件
找到如下內(nèi)容,
[users]
# harry = harryssecret
# sally = sallyssecret
在其下新增帶背景色內(nèi)容,如下
[users]
# harry = harryssecret
# sally = sallyssecret
shouke=123456
修改authz配置文件
[root@localhost conf]# vim authz
……(略)
找到如下內(nèi)容
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
在其下新增一行內(nèi)容,如下
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
group1 = shouke
找到如下內(nèi)容
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
在其下新增內(nèi)容,如下
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[repo:/]
@group1 = rw
五、啟動SVN
[root@localhost conf]# svnserve -d -r /svn/
說明:-d 表示以daemon的方式運行,-r dir_path 表示把dir_path當(dāng)作版本庫的根目錄,比如/svn/repo,svn://192.168.1.103/repo,訪問的就是/svn/repo
查看
[root@localhost conf]# netstat -antp | grep svn
tcp 00 0.0.0.0:36900.0.0.0:* LISTEN 8474/svnserve
說明:如上,默認(rèn)端口為3690
六、客戶端訪問
測試客戶端版本:TortoiseSVN-1.9.1.26747-win32-svn-1.9.1.1441852914.msi
七、常見問題排查
1.Unable to connect to repository at url ‘svn://…’ No repositroy found at snv://……,如下
說明:訪問方式不對,
1)類似svnserve -d -r /svn/ 方式(即指定路徑作為根目錄)開啟的svn服務(wù),正確的訪問方式svn://192.168.1.103/repo 即svn://ip[:port]/repository_name
2)不指定路徑作為版本庫的跟目錄里,svnserve -d 方式開啟的svn服務(wù),正確的訪問方式svn://192.168.1.103/svn/repo 即svn://[:port]/path_of_repository
2、 please wait while the repository browser is initializing
說明:防火墻阻止了端口,解決方法(centos7下測試),開放端口
[root@localhost conf]# firewall-cmd --permanent --zone=public --add-port=3690/tcp
success
[root@localhost conf]# firewall-cmd --reload
success
3、類似如下,目標(biāo)計算機積極拒絕或者
說明:服務(wù)器svnserve未開啟.
本文題目:CentOS7下SVN的安裝及基礎(chǔ)配置介紹
本文網(wǎng)址:http://m.fisionsoft.com.cn/article/coidpcp.html


咨詢
建站咨詢
