1. 程式人生 > >持續集成之二:搭建SVN服務器(subversion)

持續集成之二:搭建SVN服務器(subversion)

tar.gz .net .com aries word blog epo usr 目錄

安裝環境
  Red Hat Enterprise Linux Server release 7.3 (Maipo)
  jdk1.7.0_80
  subversion-1.10.3.tar.gz
  apr-1.6.5.tar.gz、apr-util-1.6.1.tar.gz、apr-iconv-1.2.2.tar.gz
  sqlite-autoconf-3250200.tar.gz

Subversion(簡稱SVN)是一個Apache開源的版本控制系統。
svn服務器有2種運行方式:獨立服務器和借助apache。2種方式各有利弊,本篇文章講述使用獨立服務器來創建,後期借助Apache實現http訪問。

file:/// 直接版本庫訪問(本地磁盤)。
http:// 通過配置Subversion的Apache服務器的WebDAV協議。
https:// 與http://相似,但是包括SSL加密。
svn:// 獨立服務器訪問方式,通過svnserve服務自定義的協議。如svn://ip:3690/
svn+ssh:// 與svn://相似,但通過SSH封裝


1、yum安裝: yum install subversion

2、下載離線安裝包:
SVN安裝包:subversion-1.10.3.tar.gz,下載地址:http://subversion.apache.org/download.cgi
數據庫依賴包:sqlite-autoconf-3250200.tar.gz,下載地址:https://www.sqlite.org/download.html
apr依賴包:apr-1.6.5.tar.gz、apr-util-1.6.1.tar.gz、apr-iconv-1.2.2.tar.gz,下載地址:http://apr.apache.org/download.cgi
zlib依賴包:zlib-1.2.11.tar.xz,下載地址:http://linux.softpedia.com/get/Programming/Libraries/zlib-159.shtml

3、解壓 安裝
安裝之前檢查是否已經安裝
rpm -qa|grep svn
rpm -qa|grep apr
rpm -qa|grep zlib

3.1 首先安裝 apr
參考:持續集成之二:搭建SVN服務器--Apache HTTP Server安裝

3.2 安裝zlib 註意:subversion1.10 可能不再依賴zlib

[cluster@PCS102 soft]$ xz -d zlib-1.2.11.tar.xz
[cluster@PCS102 soft]$ tar -xvf zlib-1.2.11.tar -C /home/cluster
[cluster@PCS102 zlib-1.2.11
]$ cd /home/cluster/zlib-1.2.11 [cluster@PCS102 zlib-1.2.11]$ ./configure --prefix=/home/cluster/zlib-1.2.11 [cluster@PCS102 zlib-1.2.11]$ make [cluster@PCS102 zlib-1.2.11]$ make install

3.3 安裝SVN
#解壓svn
[cluster@PCS102 soft]$ tar -zxvf subversion-1.10.3.tar.gz -C /home/cluster


#解壓sqllite

[cluster@PCS102 ~]$ tar -zxvf sqlite-autoconf-3250200.tar.gz -C /home/cluster


#遷移sqllite到svn源文件目錄下 並改名sqlite-amalgamation
[cluster@PCS102 ~]$ mv /home/cluster/sqlite-autoconf-3250200 /home/cluster/subversion-1.10.3/sqlite-amalgamation

#配置
[root@PCS102 subversion-1.10.3]# cd /home/cluster/subversion-1.10.3

#註意 配置參數裏沒有 --with-zlib
[root@PCS102 subversion-1.10.3]# ./configure --prefix=/home/cluster/subversion-1.10.3 --with-apr=/home/cluster/apr/apr-1.6.5 --with-apr-util=/home/cluster/apr/apr-util-1.6.1 --with-lz4=internal --with-utf8proc=internal

錯誤1:configure: error: Subversion requires LZ4 >= r129, or use --with-lz4=internal
解決:./configure命令添加 --with-lz4=internal選項

錯誤2:configure: error: Subversion requires UTF8PROC
解決:./configure命令添加 --with-utf8proc=internal

#編譯 安裝
[root@PCS102 subversion-1.10.3]# make && make install

3.4 添加環境變量
[root@PCS102 local]# vim /etc/profile

export JAVA_HOME=/usr/local/jdk1.7.0_80
export SVN_HOME=/home/cluster/subversion-1.10.3
export PATH=$JAVA_HOME/bin:$SVN_HOME/bin:$PATH

[root@PCS102 local]# source /etc/profile

#查看版本
[root@PCS102 local]# svn --version
[root@PCS102 local]# svnserve --version

4、創建代碼版本庫
4.1創建svn目錄作為版本主目錄 可以創建多個

[cluster@PCS102 bin]$ mkdir -p /home/cluster/svn
#創建test代碼目錄
[cluster@PCS102 bin]$ cd /home/cluster/svn && svnadmin create test

4.2配置

#修改配置svnserve.conf
[cluster@PCS102 conf]$ cd /home/cluster/svn/test && ls
authz passwd svnserve.conf
[cluster@PCS102 conf]$ vim svnserve.conf
[general]
anon-access = none # 使非授權用戶無法訪問
auth-access = write # 使授權用戶有寫權限
password-db = /home/cluster/svn/test/conf/passwd  # 指明密碼文件路徑
authz-db = /home/cluster/svn/test/conf/authz    # 訪問控制文件
realm = /home/cluster/svn/test   # 認證命名空間,subversion會在認證提示裏顯示,並且作為憑證緩存的關鍵字。

#配置passwd 用於創建用戶
[cluster@PCS102 conf]$ vim passwd
[users] 
<用戶1> = <密碼1> admin = admin
<用戶2> = <密碼2> username2 = password2
可以添加多個,此為用戶名密碼對。

#配置authz 修改author 用戶權限控制
[cluster@PCS102 conf]$ vim authz
指令簡介:此配置文件采用“基於路徑的授權”策略,中括號裏指定路徑,以下列出對各用戶的授權。
包括只讀r,讀寫rw。
沒有列出的用戶,則不允許訪問。
還可以對用戶分組,具體請參考svn手冊,以下是簡單例子:

用戶組格式:
[groups]
<用戶組名> = <用戶1>,<用戶2>
其中,1個用戶組可以包含1個或多個用戶,用戶間以逗號分隔。

版本庫目錄格式:
[<版本庫>:/項目/目錄]
@<用戶組名> = <權限>
<用戶名> = <權限>

其中,方框號內部分可以有多種寫法:
/,表示根目錄及以下。根目錄是svnserve啟動時指定的,我們指定/home/cluster/svn。這樣,/就是表示對全部版本庫設置權限。
repos1:/,表示對版本庫1設置權限
repos2:/abc, ,表示對版本庫2中的abc項目設置權限
repos2:/abc/aaa, ,表示對版本庫2中的abc項目的aaa目錄設置權限

權限主體可以是用戶組、用戶或*,用戶組在前面加@,*表示全部用戶。權限可以是w、r、wr和空,空表示沒有任何權限。
以下是簡單例子
[/]
* = rw

4.3啟動svn服務

#啟動命令: svnserve -d -r 版本庫路徑 --listen 端口號
#-d 表示守護服務,在後臺執行,--listen 3690(默認端口,也可以自行指定),-r 指定svn服務的根目錄,這樣用戶就可以使用相對路徑訪問,而不用提供完整路徑。
[cluster@PCS102 bin]$ svnserve -d -r /home/cluster/svn --listen-port=3690
#停止svn、殺死進程
[cluster@PCS102 bin]$ pkill svnserve

4.4 開發人員機器安裝 windows svn客戶端TortoiseSVN
下載:https://tortoisesvn.net/downloads.html
Subversion和tortoiseSvn版本最好一樣,至少客戶端版本要比服務端高;
如果需要安裝TortoiseSVN的中文語言包(language packs下面下載),需要下載和客戶端版本相同的。

#訪問svn://134.32.123.102/test 如下圖

技術分享圖片

技術分享圖片

參考:
https://liangzl.com/get-article-detail-18849.html
https://www.jianshu.com/p/7cfdc0086b5a
https://www.cnblogs.com/wizzhangquan/p/4564089.html
https://blog.csdn.net/yieryi_/article/details/74361650
https://blog.csdn.net/roy_70/article/details/52166331

持續集成之二:搭建SVN服務器(subversion)