Linux離線搭建SVN 服務(wù)及配置、驗(yàn)證

一、幾句題外話

受項(xiàng)目要求,要在一臺(tái)純空白服務(wù)器上搭建一套SVN服務(wù),所以在網(wǎng)上找了很久的教程,每一個(gè)都不是那么的完整,經(jīng)過(guò)多方查找,跨越多個(gè)平臺(tái),最終還是得以解決。就在這里記錄一下,不期望能指導(dǎo)后來(lái)人,只求能在以后需要再裝的時(shí)候幫助自己。

先感謝在我安裝路上提供了大量支持幾位博主,下邊是教程,有興趣的可以看看:

基礎(chǔ)安裝:http://blog.csdn.net/roy_70/article/details/52166331

? ? ? ? ? ? ? ? ? ?https://www.cnblogs.com/shaohuixia/p/5532448.html

? ? ? ? ? ? ? ? ? ?http://blog.csdn.net/xyw591238/article/details/51271602

apr-util 報(bào)錯(cuò):http://blog.csdn.net/u013091013/article/details/76153154

linux 啟動(dòng)svn服務(wù):?http://blog.csdn.net/qq_33556185/article/details/50756181

linux 倉(cāng)庫(kù)配置文件說(shuō)明:

?https://www.cnblogs.com/liuxianan/p/linux_install_svn_server.html

開(kāi)通防火墻、添加入站規(guī)則

http://blog.csdn.net/testcs_dn/article/details/45392963

http://www.cnblogs.com/wucg/p/6143204.html

二、準(zhǔn)備階段

1、服務(wù)器系統(tǒng)

這個(gè)看個(gè)人情況,我用的是紅帽

2、首先要下載相應(yīng)的包:

先檢查自己是否已安裝如下幾個(gè)包,我這邊使用rpm檢測(cè)

?[svn@localhost svn]$?rpm -qa|grep svn(若有則證明已安裝該服務(wù),可以選擇刪除或者,使用已安裝服務(wù),不需要重新下載,下同)

?[svn@localhost svn]$?rpm -qa|grep apr

?[svn@localhost svn]$?rpm -qa|grep zlib

需要下載的

subversion-1.9.7.tar.gz------地址:http://subversion.apache.org/download/(最主要的安裝包)

sqlite-autoconf-3180000.tar.gz------地址:http://www.sqlite.org/download.html(數(shù)據(jù)庫(kù)依賴包)

apr-1.6.3.tar.gz,apr-util-1.6.1.tar.gz------地址:http://apr.apache.org/download.cgi(svn基礎(chǔ)依賴包)

zlib-1.2.8.tar.gz------地址:http://linux.softpedia.com/get/Programming/Libraries/zlib-159.shtml(svn基礎(chǔ)依賴包)

3、創(chuàng)建文件路徑

我是在home下創(chuàng)建了一個(gè)文件夾svn,按照自己的需求自行設(shè)定。將文件上傳至服務(wù)器,依次將文件進(jìn)行解壓。

?[svn@localhost svn]$ tar -xzvf?subversion-1.9.7.tar.gz

?[svn@localhost svn]$ tar -xzvf?sqlite-autoconf-3180000.tar.gz

?[svn@localhost svn]$ tar -xzvf?apr-1.6.3.tar.gz

?[svn@localhost svn]$ tar -xzvf?apr-util-1.6.1.tar.gz

?[svn@localhost svn]$ tar -xzvf?zlib-1.2.8.tar.gz

三、開(kāi)始安裝

1、安裝apr、apr-util

先安裝apr

?[svn@localhost svn]$?cd?apr-1.6.3

?[svn@localhost apr-1.6.3]$?./configure prefix=/home/svn/apr-1.6.3

?[svn@localhost?apr-1.6.3]$?make

?[svn@localhost?apr-1.6.3]$?make install

安裝 apr-uill

?[svn@localhost svn]$?cd?apr-util-1.6.1

?[svn@localhost apr-util-1.6.1]$?./configure prefix=/home/svn/apr-util-1.6.1 --with-apr=/home/svn/apr-1.6.3

?[svn@localhost?apr-util-1.6.1]$?make

?[svn@localhost?apr-util-1.6.1]$?make install

make時(shí)可能會(huì)出現(xiàn)如下報(bào)錯(cuò)?

make[1]: Entering directory `/deployment/apr-util-1.6.0'

xml/apr_xml.c:411: error: ‘a(chǎn)pr_xml_parser’ has no member named ‘xp’

?需要安裝expat-devel

2、安裝zlib

?[svn@localhost svn]$?cd?zlib-1.2.8

?[svn@localhost?zlib-1.2.8]$?./configure prefix=/home/svn/zlib-1.2.8

?[svn@localhost?zlib-1.2.8]$?make

?[svn@localhost?zlib-1.2.8]$?make install

3、若已將安裝sqllite可跳過(guò)此步驟

將解壓的sqlite-autoconf-3180000 改名為sqlite-amalgamation 并移動(dòng)到?subversion-1.9.7 文件夾下

?[svn@localhost svn]$?mv sqlite-autoconf-3180000?./subversion-1.9.7/sqlite-amalgamation

4、安裝subversion

?[svn@localhost svn]$?cd?subversion-1.9.7

?[svn@localhost?subversion-1.9.7]$?./configure prefix=/home/svn/subversion-1.9.7?--with-apr=/home/svn/apr-1.6.3 --with-apr-util=/home/svn/apr-util-1.6.1 --with-zlib=/home/svn/zlib

?[svn@localhost?subversion-1.9.7]$?make

?[svn@localhost?subversion-1.9.7]$?make install

注意prefix前是兩個(gè)減號(hào).?默認(rèn)不帶BDB包,?所以默認(rèn)使用的是FSFS模式.?若想使用BDB模式需另外下載BDB包.建議使用FSFS模式。

四、驗(yàn)證安裝是否成功

修改PATH路徑配置文件,將svn加入path

?[svn@localhost?subversion-1.9.7]$?cd??

?[svn@localhost?~]$?vim .bash_profile?

PATH=/home/svn/subversion-1.9.7/bin:$PATH

在export PATH 之前 添加一條PATH

執(zhí)行配置文件,讓修改的內(nèi)容生效

?[svn@localhost?~]$.?.bash_profile?

輸入svnserve --version來(lái)驗(yàn)證svn是否安裝成功,如下圖所示出現(xiàn)svn的版本即安裝成功

五、配置倉(cāng)庫(kù)

??[svn@localhost?svn]$ mkdir -p myproject

??[svn@localhost?svn]$ svnadmin create /home/svn/myproject?

? 注意文件位置要對(duì)應(yīng),執(zhí)行此命令后svn自動(dòng)在myproject目錄下添加必須的配置文件。

修改配置文件

[svn@localhost?svn]$ cd myproject/conf

修改 subversion.conf

將以下幾項(xiàng)前的#刪除,并頂格編寫(xiě)

[svn@localhost?conf]$ vim?subversion.conf

[general]

anon-access = none #?使非授權(quán)用戶無(wú)法訪問(wèn)

auth-access = write #?使授權(quán)用戶有寫(xiě)權(quán)限

password-db = /opt/svndata/repos/conf/passwd ?#?指明密碼文件路徑

authz-db = /opt/svndata/repos/conf/authz?? ?#?訪問(wèn)控制文件

realm = /opt/svndata/repos ??#?認(rèn)證命名空間,subversion會(huì)在認(rèn)證提示里顯示,并且作為憑證緩存的關(guān)鍵字。?

修改 passwd 用于創(chuàng)建用戶

[svn@localhost?conf]$ vim passwd

輸入以下內(nèi)容:?

[users]?

<用戶1> = <密碼1>?admin = admin

<用戶2> = <密碼2>?username2 = password2

可以添加多個(gè),此為用戶名密碼對(duì)。

修改author 用戶權(quán)限控制

[svn@localhost?conf]$ vim authz

?指令簡(jiǎn)介:此配置文件采用“基于路徑的授權(quán)”策略,中括號(hào)里指定路徑,以下列出對(duì)各用戶的授權(quán)。包括只讀r,讀寫(xiě)rw。沒(méi)有列出的用戶,則不允許訪問(wèn)。還可以對(duì)用戶分組,具體請(qǐng)參考svn手冊(cè),以下是簡(jiǎn)單例子:

? ? ? ?用戶組格式:

? ??[groups]

? ? <用戶組名> = <用戶1>,<用戶2>

? ? 其中,1個(gè)用戶組可以包含1個(gè)或多個(gè)用戶,用戶間以逗號(hào)分隔。


版本庫(kù)目錄格式:

[<版本庫(kù)>:/項(xiàng)目/目錄](méi)

@<用戶組名> = <權(quán)限>

<用戶名> = <權(quán)限>

其中,方框號(hào)內(nèi)部分可以有多種寫(xiě)法:

/,表示根目錄及以下。根目錄是svnserve啟動(dòng)時(shí)指定的,我們指定/opt/svndata。這樣,/就是表示對(duì)全部版本庫(kù)設(shè)置權(quán)限。

repos1:/,表示對(duì)版本庫(kù)1設(shè)置權(quán)限

repos2:/abc, ,表示對(duì)版本庫(kù)2中的abc項(xiàng)目設(shè)置權(quán)限

repos2:/abc/aaa, ,表示對(duì)版本庫(kù)2中的abc項(xiàng)目的aaa目錄設(shè)置權(quán)限

權(quán)限主體可以是用戶組、用戶或*,用戶組在前面加@,*表示全部用戶。權(quán)限可以是w、r、wr和空,空表示沒(méi)有任何權(quán)限。

以下是簡(jiǎn)單例子

[/]

* = rw

六、啟動(dòng)服務(wù)

啟動(dòng)命令:?svnserve -d -r?版本庫(kù)路徑?--listen 端口號(hào)

如:[svn@localhost ~]$ ?svnserve -d --listen-port 3690 -r /home/svn

? ? ? -d 表示守護(hù)服務(wù),在后臺(tái)執(zhí)行

????--listen 3690(默認(rèn)端口,也可以自行指定)?

????-r?指定svn服務(wù)的根目錄,這樣用戶就可以使用相對(duì)路徑訪問(wèn),而不用提供完整路徑。

啟動(dòng)后,可在進(jìn)程中查找是否已啟動(dòng)svn服務(wù)

[svn@localhost ~]$ ps - ef|grep svn

七、開(kāi)通端口,開(kāi)通防火墻端口

添加入站規(guī)則(建議法一、法二都做一遍,應(yīng)該是添加文件最為直接,但是我當(dāng)時(shí)是沒(méi)有效果,用了第一種方法才成功)

方法一

[root@localhost svn]$ ?/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT

[root@localhost svn]# /etc/init.d/iptables save

iptables 將防火墻規(guī)則保存到 /etc/sysconfig/iptables: [確定]

方法二

直接編輯/etc/sysconfig/iptables

-A INPUT -p tcp -m tcp --dport 3690 -j ACCEPT

保存在前面部分


重啟防火墻

[root@localhost svn]# service iptables restart

iptables:將鏈設(shè)置為政策 ACCEPT:filter mangle nat? ? ? ? [確定]

iptables:清除防火墻規(guī)則:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [確定]

iptables:正在卸載模塊:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [確定]

iptables:應(yīng)用防火墻規(guī)則:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [確定]

八、訪問(wèn)服務(wù)

現(xiàn)在可以使用安裝了svn客戶端的電腦遠(yuǎn)程連接至剛才建立的svn版本庫(kù)

地址是svn://SVN服務(wù)器的IP地址/myproject

如果不想用戶輸入myproject,可以在啟動(dòng)服務(wù)時(shí)指定目錄時(shí)加上具體的位置

[svn@localhost ~]$ ?svnserve -d --listen-port 3690 -r /home/svn/myproject

九、寫(xiě)在最后

經(jīng)過(guò)一下午的百度以后,最終還是成功的部署了服務(wù)。期間坎坷不斷,最初的服務(wù)器中連gcc都沒(méi)有,一臉的生無(wú)可戀。其中在教程的指導(dǎo)下,也是仍有各種報(bào)錯(cuò),好在都在最后解決了。以上的安裝步驟都是我第二天回憶編寫(xiě)的,可能在細(xì)節(jié)上會(huì)有疏漏,如有錯(cuò)誤,請(qǐng)?jiān)谙路搅粞裕⑦M(jìn)行指正。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容