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

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


咨詢
建站咨詢
