Linux離線搭建SVN 服務及配置、驗證

一、幾句題外話

受項目要求,要在一臺純空白服務器上搭建一套SVN服務,所以在網上找了很久的教程,每一個都不是那么的完整,經過多方查找,跨越多個平臺,最終還是得以解決。就在這里記錄一下,不期望能指導后來人,只求能在以后需要再裝的時候幫助自己。

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

基礎安裝: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 報錯:http://blog.csdn.net/u013091013/article/details/76153154

linux 啟動svn服務:?http://blog.csdn.net/qq_33556185/article/details/50756181

linux 倉庫配置文件說明:

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

開通防火墻、添加入站規則

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

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

二、準備階段

1、服務器系統

這個看個人情況,我用的是紅帽

2、首先要下載相應的包:

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

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

?[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(數據庫依賴包)

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

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

3、創建文件路徑

我是在home下創建了一個文件夾svn,按照自己的需求自行設定。將文件上傳至服務器,依次將文件進行解壓。

?[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

三、開始安裝

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時可能會出現如下報錯?

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

xml/apr_xml.c:411: error: ‘apr_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可跳過此步驟

將解壓的sqlite-autoconf-3180000 改名為sqlite-amalgamation 并移動到?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前是兩個減號.?默認不帶BDB包,?所以默認使用的是FSFS模式.?若想使用BDB模式需另外下載BDB包.建議使用FSFS模式。

四、驗證安裝是否成功

修改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

執行配置文件,讓修改的內容生效

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

輸入svnserve --version來驗證svn是否安裝成功,如下圖所示出現svn的版本即安裝成功

五、配置倉庫

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

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

? 注意文件位置要對應,執行此命令后svn自動在myproject目錄下添加必須的配置文件。

修改配置文件

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

修改 subversion.conf

將以下幾項前的#刪除,并頂格編寫

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

[general]

anon-access = none #?使非授權用戶無法訪問

auth-access = write #?使授權用戶有寫權限

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

authz-db = /opt/svndata/repos/conf/authz?? ?#?訪問控制文件

realm = /opt/svndata/repos ??#?認證命名空間,subversion會在認證提示里顯示,并且作為憑證緩存的關鍵字。?

修改 passwd 用于創建用戶

[svn@localhost?conf]$ vim passwd

輸入以下內容:?

[users]?

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

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

可以添加多個,此為用戶名密碼對。

修改author 用戶權限控制

[svn@localhost?conf]$ vim authz

?指令簡介:此配置文件采用“基于路徑的授權”策略,中括號里指定路徑,以下列出對各用戶的授權。包括只讀r,讀寫rw。沒有列出的用戶,則不允許訪問。還可以對用戶分組,具體請參考svn手冊,以下是簡單例子:

? ? ? ?用戶組格式:

? ??[groups]

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

? ? 其中,1個用戶組可以包含1個或多個用戶,用戶間以逗號分隔。


版本庫目錄格式:

[<版本庫>:/項目/目錄]

@<用戶組名> = <權限>

<用戶名> = <權限>

其中,方框號內部分可以有多種寫法:

/,表示根目錄及以下。根目錄是svnserve啟動時指定的,我們指定/opt/svndata。這樣,/就是表示對全部版本庫設置權限。

repos1:/,表示對版本庫1設置權限

repos2:/abc, ,表示對版本庫2中的abc項目設置權限

repos2:/abc/aaa, ,表示對版本庫2中的abc項目的aaa目錄設置權限

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

以下是簡單例子

[/]

* = rw

六、啟動服務

啟動命令:?svnserve -d -r?版本庫路徑?--listen 端口號

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

? ? ? -d 表示守護服務,在后臺執行

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

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

啟動后,可在進程中查找是否已啟動svn服務

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

七、開通端口,開通防火墻端口

添加入站規則(建議法一、法二都做一遍,應該是添加文件最為直接,但是我當時是沒有效果,用了第一種方法才成功)

方法一

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

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

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

方法二

直接編輯/etc/sysconfig/iptables

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

保存在前面部分


重啟防火墻

[root@localhost svn]# service iptables restart

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

iptables:清除防火墻規則:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [確定]

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

iptables:應用防火墻規則:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [確定]

八、訪問服務

現在可以使用安裝了svn客戶端的電腦遠程連接至剛才建立的svn版本庫

地址是svn://SVN服務器的IP地址/myproject

如果不想用戶輸入myproject,可以在啟動服務時指定目錄時加上具體的位置

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

九、寫在最后

經過一下午的百度以后,最終還是成功的部署了服務。期間坎坷不斷,最初的服務器中連gcc都沒有,一臉的生無可戀。其中在教程的指導下,也是仍有各種報錯,好在都在最后解決了。以上的安裝步驟都是我第二天回憶編寫的,可能在細節上會有疏漏,如有錯誤,請在下方留言,并進行指正。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,431評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,637評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,555評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,900評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,629評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,976評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,976評論 3 448
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,139評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,686評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,411評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,641評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,129評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,820評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,233評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,567評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,362評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,604評論 2 380