1. 程式人生 > >centos 6.9部署svn服務器(服務器、客戶端環境配置)

centos 6.9部署svn服務器(服務器、客戶端環境配置)

svn svn服務器 tortoisesvn tortoisesvn使用

svn版本控制系統有很多用途,最近公司使用它加腳本實現產品補丁小更新(因為如果每次都大更新的話,每次都要重新打rpm包,更新yum源等,很麻煩)。


一、服務器端安裝

1、安裝svn

[root@svn ~]#yum install -y subversion


2、新建svn目錄

[root@svn ~]#mkdir -p /root/svn/svnserver


3、啟動svn服務

[root@svn ~]#svnserve -d -r /root/svn/svnserver/

如果有這個報錯:svnserve: error while loading shared libraries: libaprutil-1.so.0: cannot open shared object file: No such file or directory

解決辦法:

(1)找到這個文件所在目錄

[root@svn ~]#find / -name "libaprutil-1.so.0"
/usr/local/xxx/service/apache/lib/libaprutil-1.so.0

(2)查看共享庫配置文件

[root@svn ~]#more /etc/ld.so.conf
include ld.so.conf.d/*.conf

(3)添加共享庫,並更新共享庫

[root@svn ~]#vi /etc/ld.so.conf.d/httpd-apr.conf
/usr/local/xxx/service/apache/lib/
[root@svn ~]#ldconfig -v


4、啟動svn

[root@svn ~]#svn --version
[root@svn ~]#svnserve -d -r /root/svn/svnserver/

備註:如果要更改端口啟動的時候接上“--listen-port”新端口。


5、創建版本庫

[root@svn ~]#svnadmin create /root/svn/svnserver/patch


6、修改svnserve.conf配置文件,在[general]下方加入這四行

[root@svn ~]#vim /root/svn/svnserver/patch/conf/svnserve.conf
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = patch

備註:realm 這行也可以不加。


7、創建svn用戶和權限分配

在 /root/svn/svnserver/patch/conf目錄下,有兩個文件是配置用戶賬號密碼和用戶權限的。

passwd 此文件配置用戶賬號和密碼
[root@svn ~]#vim /root/svn/svnserver/patch/conf/passwd 
[users]
# harry = harryssecret
# sally = sallyssecret
xxx = 123456
zhangsan = 123456
lisi = 123456
authz 此文件配置用戶權限
[root@svn ~]#vim /root/svn/svnserver/patch/conf/authz
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe

admin = xxx
user = xxx,zhangsan,lisi

# [/foo/bar]
# harry = rw
# &joe = r
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
@admin = rw
@user = rw

備註:authz這個文件詳細控制權限,請見最後的備註。


8、設置iptables防火墻允許3690端口,或者關閉防火墻


9、 編寫啟動腳本

[root@svn ~]#vi /etc/init.d/server_init
#!/bin/bash
#chkconfig: 345 90 90
#description: server_init for patch.
svnserve -d -r /root/svn/svnserver/


10、 啟動腳本放入/etc/init.d/目錄下,並設置開機啟動

[root@svn ~]#chkconfig --add server_init
[root@svn ~]#chkconfig server_init on
[root@svn  ~]#chmod 755 server_init

備註:如果要殺掉svnserver,用killall svnserver,然後svnserve -d -r /root/svn/svnserver/啟動。



二、客戶端安裝

1、下載TortoiseSVN客戶端

http://sw.bos.baidu.com/sw-search-sp/software/b2ea78514e765/TortoiseSVN-1.9.7.27907-x64.msi


2、右鍵點擊桌面上空白區域,然後會發現右鍵的菜單中多了“SVN Checkout...”工具欄,點擊。

技術分享圖片


3、填入服務器版本庫的路徑,和本地存放版本庫文件的目錄,這裏本地C盤新建一個patch目錄,會提示輸入密碼,並下載更新。

技術分享圖片

技術分享圖片

技術分享圖片


4、更新並提交2個文件,如下圖:

如果要提交某一個文件,可以選中這個文件,然後右鍵選擇TortoiseSVN---Add添加,提交的時候最好寫上備註:

技術分享圖片

技術分享圖片


5、清除登錄帳號和密碼信息,然後用另外一個帳號登錄(本地C盤新建一個test2目錄)

備註:我這裏只是舉例,實際情況下是讓另外一個人在其他電腦上登錄另外一個帳號,驗證相互提交的數據是否能同步。

技術分享圖片

技術分享圖片


技術分享圖片

如上圖,表示同步成功。


疑問:

或許有很多人會以為這些文件會以文件方式存儲在服務器上,其實不是。

上傳的文件放在SVN服務器的哪個目錄下,SVN服務器版本庫有兩種格式。一種為FSFS,一種為BDB。
把文件上傳到SVN版本庫後,上傳的文件不再以文件原來的格式存儲,而是被svn以它自定義的格式壓縮成版本庫數據,存放在版本庫中。
如果是FSFS格式,這些數據存放在版本庫的db目錄中,裏面的revs和revprops分別存放著每次提交的差異數據和日誌等信息


備註:

這是一個權限實例需求,如果需要對權限精確控制,請參考這個。

-----------------------------------------------------------------

策劃組:開策劃、美術讀寫

後端組:開後端讀寫,策劃只讀

前端組:開前端讀寫,策劃、美術只讀

美術組:開美術讀寫,策劃只讀

管理員組:所有的讀寫

authz:用戶權限配置

示例:

[groups]

#管理組

manager = boss

#服務端用戶組

server = server1,server2

#客戶端用戶組

client = client1,client2

#美術組

art = art1,art2

#策劃組

design=design1,design2

[game:/]

@manager=rw

[game:/server]

@server=rw

[game:/client]

@client=rw

@design=r

@art=r

[game:/art]

@design=rw

@art=rw

@client=r

[game:/design]

@design=rw

@server=r

@client=r

@art=r

passwd:用戶密碼

[users]

boss=123456

server1=123456

server2=123456

client1=123456

client2=123456

art1=123456

art2=123456

design1=123456

design2=123456

centos 6.9部署svn服務器(服務器、客戶端環境配置)