1、yum install svn? ??
SVN版本庫(kù)的建立
A.我選擇的目錄是 /home/svn/作為SVN版本庫(kù)的根目錄,命令為:
# mkdir /home/svn
B.比如,現(xiàn)在我有一個(gè)名為“project”的項(xiàng)目需要用SVN做版本管理,那么我可以在svn根目錄下建立一個(gè) /project目錄,我最終目的想讓項(xiàng)目托管到/project目錄下。接下來我需要新建這個(gè)目錄:/home/svn/project
,命令為:
# mkdir -p /home/svn/project
C.然后需要將/project目錄設(shè)定為版本庫(kù),命令如下:
# svnadmin create /home/svn/project
D.設(shè)定/project目錄為版本庫(kù)后,會(huì)發(fā)現(xiàn)/project目錄下會(huì)多出以下文件:
第五步:svn服務(wù)器的相關(guān)配置:
svn的配置主要就是對(duì)conf目錄下的三個(gè)文件配置:svnserve.conf、passwd、authzs。
A.對(duì)著三個(gè)配置文件的講解
a.svnserve.conf文件講解
[general]配置段中配置行格式: <配置項(xiàng)> = <值> ,常用的配置項(xiàng)是以下5項(xiàng):
(1)anon-access控制非鑒權(quán)用戶訪問版本庫(kù)的權(quán)限。取值范圍為”write”、”read”和”none”。即”write”為可讀可寫,”read”為只讀,”none”表示無訪問權(quán)限。?
缺省值:read
(2)auth-access控制鑒權(quán)用戶訪問版本庫(kù)的權(quán)限。取值范圍為”write”、”read”和”none”。即”write”為可讀可寫,”read”為只讀,”none”表示無訪問權(quán)限。?
缺省值:write
(3)password-db 指定用戶名口令文件名。除非指定絕對(duì)路徑,否則文件位置為相對(duì)conf?目錄的相對(duì)路徑。?
缺省值:passwd
(4)authz-db 指定權(quán)限配置文件名,通過該文件可以實(shí)現(xiàn)以路徑為基礎(chǔ)的訪問控制。除非指定絕對(duì)路徑,否則文件位置為相對(duì)conf目錄的相對(duì)路徑。?
缺省值:authz?
(5)realm 指定版本庫(kù)的認(rèn)證域,即在登錄時(shí)提示的認(rèn)證域名稱(就是個(gè)作為提示用的,不用太糾結(jié))。
b.passwd文件講解
用戶名口令文件,該文件名在文件svnserve.conf中指定,缺省為同目錄下的passwd。
該文件僅由一個(gè)[users]配 置段組成。
[users]配置段的配置行格式如下: <用戶名> = <口令> ,注意:配置行中的口令是未經(jīng)過任何處理的明文。
例:用戶名口令文件conf/passwd的內(nèi)容如下,配置了兩個(gè)用戶,用戶名分別為”quanran”和”dongxuening”。其中”quanran”用戶的口令為”111111”,”dongxuening”用戶的口令為”222222”:
[users]?
quanran = 111111
dongxuening = 222222
c.authzs文件講解
權(quán)限配置文件,該文件名也在文件svnserve.conf中指定,缺省為同目錄下的authz。
該配置文件由一個(gè)[groups]配置段和 若干個(gè)版本庫(kù)路徑權(quán)限段組成。
[groups]配置段中配置行格式如下:?
<用戶組> = <用戶列表>?
用戶列表由若干個(gè)用戶組或用戶名構(gòu)成,用戶組或用戶名之間用逗號(hào)”,”分隔,引用用戶組時(shí)要使用前綴”@”(如:引用用戶組”all”要使用字符 串”@all”)。
版本庫(kù)路徑權(quán)限段的段名格式如下:?
[<版本庫(kù)名>:<路徑>]?
如版本庫(kù)abc路徑/tmp的版本庫(kù)路徑權(quán)限段的段名為”[abc:/tmp]”。?
可省略段名中的版本庫(kù)名。若省略版本庫(kù)名,則該版本庫(kù)路徑權(quán)限段對(duì)所有版本庫(kù)中相同路徑的訪問控制都有效。如:段名為”[/tmp]”的版本庫(kù)路徑權(quán)限段 設(shè)置了所有引用該權(quán)限配置文件的版本庫(kù)中目錄”/tmp”的訪問權(quán)限。
版本庫(kù)路徑權(quán)限段中配置行格式有如下三種:?
<用戶名> = <權(quán)限>?
<用戶組> = <權(quán)限>?
* = <權(quán)限>?
其中,”*”表示任何用戶;權(quán)限的取值范圍為”、’r’和’rw’,”表示對(duì)該版本庫(kù)路徑無任何權(quán)限,’r’表示具有只讀權(quán)限,’rw’表示有讀寫權(quán) 限。?
注意:每行配置只能配置單個(gè)用戶或用戶組。
例3:權(quán)限配置文件conf/authz的內(nèi)容如下:?
[groups]?
g_admin = admin,zhangsan
[admintools:/]?
@g_admin = rw?
* =
[test:/home/zhangsan]?
zhangsan = rw?
* = r
在上述配置文件中,定義了一個(gè)用戶組”g_admin”,該用戶組包含用戶”admin”和”zhangsan”。然后定義了2個(gè)版本庫(kù)路徑權(quán)限段。其中, 版本庫(kù)”admintools”只有用戶組”g_admin”可讀寫,其他用戶無任何權(quán)限;版本庫(kù)”test”中路徑”/home/zhangsan”只有 用戶”zhangsan”有讀寫權(quán)限,其他用戶只有可讀權(quán)限。
B.言歸正傳!開始配置!
(1)配置svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
備注:vi命令編輯svnserve.conf,insert進(jìn)入編輯模式,放開以上選項(xiàng),ESC :wq保存。設(shè)置非鑒權(quán)用戶無權(quán)訪問、設(shè)置鑒權(quán)用戶可讀寫、口令及權(quán)限配置參照conf目錄下passwd和authz的配置。
重要提醒!!:首行不可以留空,要頂行,否則會(huì)造成SVN識(shí)別為配置錯(cuò)誤。
(2)配置passwd
[users]
rokay = 123456
備注:配置了一個(gè)用戶為“rokay”,密碼為“123456”的用戶。
(3)配置authz
[groups]
g_admin = rokay
[/]
@g_admin = rw
*=?
備注:配置了一個(gè)管理員群組“g_admin”,包含用戶“rokay”;?
“[/]”表示對(duì)根目錄“trunk”的權(quán)限配置。?
配置了“g_admin”群組對(duì)于該目錄下的權(quán)限為“rw“(讀、寫)權(quán)限。?
* = 配置了除群組”g_admin“外的其他用戶均無權(quán)訪問。
注意:也可以用“,”分隔多個(gè)用戶或者@+群組名稱的方式配置多用戶,參看上方說明。
(4)綜上,就完成了對(duì)三個(gè)文件也就是svnserve的配置了。
第六步:?jiǎn)?dòng)svn服務(wù)
輸入命令:# svnserve -d -r /home/svn
注意:/svn目錄為版本庫(kù)的根目錄,所以路徑僅到/svn即可。
此時(shí),SVN服務(wù)器的配置以及版本庫(kù)已經(jīng)建立完成!
第七步:SVN Windows客戶端訪問
訪問地址:svn://[服務(wù)器IP地址]/[項(xiàng)目名稱];
例如:svn://123.206.73.117/project/
輸入已授權(quán)的用戶信息登錄即可訪問資源位置。?
同樣的,可以通過右擊項(xiàng)目[team]—[share],輸入以上URL將項(xiàng)目共享至新建的SVN版本庫(kù)中。
注意:上述地址中沒有”/svn”這一級(jí)目錄,”/svn”為版本庫(kù)根目錄,不用輸入!!!!!!!!
第八步:新建多個(gè)版本庫(kù)
若要在/svn目錄下添加新的版本庫(kù),直接新建相應(yīng)的目錄,然后設(shè)置為版本庫(kù),最后配置即可,不需要重新運(yùn)行svnserve -d -r /home/svn,也不需要把該命令應(yīng)用到/svn目錄下你所新建的目錄,如果因?yàn)檎`操作執(zhí)行了以上命令,會(huì)導(dǎo)致資源庫(kù)不可用,再次運(yùn)行svnserve -d -r /home/svn也會(huì)報(bào):“不能綁定服務(wù)器套接字 地址已在使用”的錯(cuò)誤字樣“(若已至此,刪除掉新建的資源庫(kù),并用ps -ef | grep svnserve查看進(jìn)程,kill -9 [進(jìn)程號(hào)] 殺掉,重新執(zhí)行svnserve -d -r /home/svn,再次新建資源庫(kù),直接配置即可使用)
比如在/svn目錄下另外新建一個(gè)project2的資源庫(kù),命令如下:
# mkdir -p /home/svn/project2
# svnadmin create /home/svn/project2
# 在次配置當(dāng)前版本庫(kù)的三個(gè)配置文件:svnserve.conf、passwd、authzs。
(不需再運(yùn)行svnserve -d -r /home/svn !!!!!!!)
第九步:一切搞定,OK啦!
===========第二種:yum安裝方式。優(yōu)點(diǎn):簡(jiǎn)單,一鍵安裝,不用手動(dòng)配置環(huán)境變量等。缺點(diǎn):安裝位置為yum默認(rèn)===========
一、yum安裝subversion
? ? 1. 安裝subversion?yum install subversion
2. 查看安裝版本,檢查安裝是否成功?svnserve --version? ,我裝的版本為??1.7.14
3. 查看安裝位置??rpm -ql subversion
二、創(chuàng)建版本庫(kù)
1.創(chuàng)建用于存放版本庫(kù)的目錄,比如我準(zhǔn)備在/home下創(chuàng)建版本庫(kù)??mkdir -p /home/svn/
2.創(chuàng)建svn版本庫(kù),指定為剛才創(chuàng)建的目錄?svnadmin create /home/svn/porject
3.創(chuàng)建完后,版本庫(kù)目錄下會(huì)生成一些文件,進(jìn)入conf目錄下。conf目錄中authz文件是權(quán)限控制文件,passwd是帳號(hào)密碼文件,svnserve.conf是SVN服務(wù)配置文件。
? ? ???? 修改svnserver.conf文件:
????????????[general]
????????????anon-access = none? #匿名用戶可讀
????????????auth-access = write? #授權(quán)用戶可寫
????????????password-db = passwd? #使用哪個(gè)文件作為賬號(hào)文件
????????????authz-db = authz? #使用哪個(gè)文件作為權(quán)限文件
4.修改passwd文件,加入用戶,格式就是“用戶名=密碼”,如:?
?????????????quanran = 11
????????????dongxuening?= 22
5.修改authz文件,加入用戶權(quán)限:
[/]?
quanran?= rw
???????????dongxuening = r
這就表示quanran 用戶對(duì)版本庫(kù)根目錄有讀寫權(quán)限(即最高權(quán)限了),而dongxuening 用戶對(duì)版本庫(kù)目錄只有讀的權(quán)限。
6.svnserve.conf里面常用的配置有設(shè)置匿名用戶(默認(rèn)可讀)、授權(quán)用戶(默認(rèn)讀寫)的讀寫權(quán)限,以及指定賬號(hào)文件(默認(rèn)passwd)、權(quán)限文件(默認(rèn)authz)的路徑等。看起來應(yīng)該默認(rèn)值就夠了,但實(shí)際使用發(fā)現(xiàn)還是得手動(dòng)把相關(guān)注釋打開,不知道是什么原因。
7.啟動(dòng)svn版本庫(kù)?svnserve -d -r??/home/svn/
其中,-r的作用是設(shè)置根目錄路徑,比如我這樣設(shè)置后在訪問時(shí)輸入svn://x.x.x.x/就會(huì)直接到我的svn目錄下(當(dāng)然在svn目錄下是找不到版本庫(kù)的),如果想訪問版本庫(kù)則輸入svn://x.x.x.x/Code即可。
換句說話,如果啟動(dòng)版本庫(kù)時(shí)命令為svnserve -d -r???/home/svn/,則訪問svn://x.x.x.x/就能直接到版本庫(kù)內(nèi)。
三、常見問題
1.注意打開端口的訪問權(quán)限。svn服務(wù)的默認(rèn)端口為3690,比如我部署在阿里云服務(wù)器上,必須先在阿里云控制臺(tái)打開3690端口的外部訪問權(quán)限。
2.關(guān)閉svn服務(wù)的方式是殺掉進(jìn)程,kill pid或者pkill svnserve
————————————————
版權(quán)聲明:本文為CSDN博主「全冉」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_23167527/java/article/details/80182317