Linux下搭建SVN服務器

Svn 安裝
再講述SVN的安裝步驟時,先了解一下svn的工作原理
我們用一個小小的例子,引出svn;如果有一個項目,需要多個人員共同開發,但這些開發人員並不在一個地方,那如何來完成這個項目呢,每一個項目人員對一些文件或者程序的更改,如何能更快的被其他項目人員獲得呢?這時候我們就需要一款管理項目開發程序的管理軟件了,可是如何解決項目程序的同步問題、安全問題、以及管理問題呢?
SVN是近期崛起的一款管理軟件,是csv的接班人,目前較多開源軟件都是用svn作爲管理軟件
SVN的基本工作思路:在一臺server上搭建一個源代碼庫,庫裏可以存放許多不同的源程序,由源代碼庫管理員統一管理這些源程序,每一個用戶在使用這些源程序時,都需要將源代碼庫裏的文件下載到本地,之後開發人員可以在本地進行修改,修改後用svn的命令提交,再由源代碼庫統一管理修改
解決的問題:
代碼管理混亂
解決代碼衝突管理困難
在代碼整合期間引起bug
無法對擁有者進行適當的權限控制
項目不同,版本的發佈困難
現在來講解一些svn的安裝步驟:
在這裏不僅僅會介紹svn的安裝,還會介紹一些配置,以及在win客戶端下的使用
我現在是在centos 5.3版本上安裝的,你前期需要準備的是有gcc這個編譯器,最好能搭建一個YUM,這樣可以幫你解決在安裝過程中,缺少一些包的問題,本地源服務器YUM的安裝,可參考:
http://1413570.blog.51cto.com/1403570/631226
接下來就開始我們的辛酸之旅,途中會遇到很多困難哦,加油吧!
先下載兩個包,
subversion-1.7.2.tar.gz
subversion-deps-1.6.1.tar.gz
這兩個包,可以從http://down.51cto.com/data/314148 下載
解壓:
tar -zxvf subversion-1.7.2.tar.gz
tar -zxvf subversion-deps-1.6.1.tar.gz
進入目錄,準備編譯安裝:
[root@localhost software]# cd subversion-1.7.2
[root@localhost subversion-1.7.2]#  指定安裝的路徑是在home下面,zlib需要zlib-devel- ,查了一下這個包是FSFS文件系統用到的包
安裝遇到的第一個error,
checking for APR... no
configure: WARNING: APR not found
The Apache Portable Runtime (APR) library cannot be found.
Please install APR on this system and supply the appropriate
--with-apr option to 'configure'
解決辦法:
到tar -zxvf subversion-deps-1.6.1.tar.gz 解壓的目錄下,有一個apr的文件夾,放到subversion-1.7.2下即可
[root@localhost subversion-1.7.2]# cp -rf ../subversion-1.6.1/apr .
Ok,再重新執行./configure 命令
遇到第二個error:
checking APR version... 1.3.3
configure: Apache Portable Runtime Utility (APRUTIL) library configuration
checking for APR-util... no
configure: WARNING: APRUTIL not found
The Apache Portable Runtime Utility (APRUTIL) library cannot be found.
Either install APRUTIL on this system and supply the appropriate
提示的是apache的端口沒有找到,因爲此安裝並沒有與apache結合,到tar -zxvf subversion-deps-1.6.1.tar.gz 解壓的目錄下,發現有一個 APR-util,再移動到ubversion-1.7.2下
重新執行./configure 命令
Ok,遇到第三個error,
checking sqlite library version (via pkg-config)... no

An appropriate version of sqlite could not be found.  We recommmend
3.7.6.3, but require at least 3.6.18.
錯誤有提示:解決辦法
get the sqlite 3.7.6.3 amalgamation from:
    http://www.sqlite.org/sqlite-amalgamation-3.7.6.3.tar.gz
unpack the archive using tar/gunzip and copy sqlite3.c from the
resulting directory to:
/home/software/subversion-1.7.2/sqlite-amalgamation/sqlite3.c
下載這個包,解壓,將sqlite3.c放到指定的位置
http://down.51cto.com/data/314253
下載,解壓
unzip sqlite-amalgamation-3070900.zip
[root@localhost software]# mkdir -p subversion-1.7.2/sqlite-amalgamation
[root@localhost software]# cd sqlite-amalgamation-3070900
[root@localhost sqlite-amalgamation-3070900]# cp sqlite3.c  ../subversion-1.7.2/sqlite-amalgamation/
之後重新執行./configure
見到這表示。、config執行ok
checking for ctypesgen.py... none
configure: creating ./config.status
config.status: creating Makefile
config.status: creating tools/backup/hot-backup.py
config.status: creating tools/hook-scripts/commit-access-control.pl
config.status: creating subversion/bindings/swig/perl/native/Makefile.PL
config.status: creating subversion/svn_private_config.h.tmp
config.status: executing libtool commands
config.status: executing svn_private_config.h.tmp commands
[root@localhost subversion-1.7.2]# make clean[
root@localhost subversion-1.7.2]# make && make install
只要沒有遇到error,就是ok的,
cd subversion/po ; /usr/bin/install -c -m 644 zh_TW.mo /home/svn/share/locale/zh_TW/LC_MESSAGES/subversion.mo
test -d /home/svn/include/subversion-1 || \
          /usr/bin/install -c -d /home/svn/include/subversion-1
(subversion/svnversion/svnversion . 2> /dev/null ||  \
         svnversion . 2> /dev/null ||                        \
         echo "unknown";                                                 \
        ) > /home/svn/include/subversion-1/svn-revision.txt
[root@localhost subversion-1.7.2]#
現在在home下面可以找到svn這個目錄,說明我們的安裝已經結束,[root@localhost home]# cd svn/
[root@localhost svn]# ls
bin  build-1  include  lib  share
[root@localhost svn]# pwd
/home/svn
[root@localhost svn]#
要讓系統找到這些命令還需要將這些命令添加到系統的環境變量中。 操作爲
Vi  /etc/profile
找到export PATH
export PATH=/home/svn/bin:$PATH  USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
命令:[root@localhost bin]# source  /etc/profile
讓profile文件生效
[root@localhost bin]# svnserve --version
svnserve,版本 1.7.2 (r1207936)
   編譯於 Dec 29 2011,17:17:19
安裝ok
下面繼續講解的是如何去配置svn以及win 客戶端如何去
本次操作沿用爲每個項目單獨建一版本庫的策略,配置文件、認證、密碼等都放到版本庫下面,所以每一次開始一個新的項目的時候,都需要爲項目新建一個版本庫,並且需要重新配置相關文件,而且,在客戶端上,也是需要重新指定版本庫路
本庫目錄(可建立多個,新建庫後以下各項都需重新配置。注意區別安裝目錄與版本庫目錄,以下講的都是版本庫目錄)  
[root@localhost home]# mkdir -p /home/svndata/repo
  建立svn版本庫(與上面目錄對應)
svnadmin create /home/svndata/repo/
執行此命令後svn自動在repos目錄下添加必須的配置文件,可以查看下
修改版本庫文件
進入到/home/svndata/repo/conf目錄下,之前有講過/home/svndata/repo目錄
[general] anon-access = none # 使非授權用戶無法訪問
auth-access = write # 使授權用戶有寫權限
password-db = /home/svndata/repo/conf/password # 指明密碼文件路徑
authz-db = /home/svndata/repo/conf/authz.# 訪問控制文件
realm = /home/svndata/repo # 認證命名空間,subversion會在認證提示裏顯示,並且作爲憑證緩存的關鍵字。 其它採用默認配置. 各語句都必須頂格寫, 左側不能留空格, 否則會出錯.  指令簡介:這是svn配置文件的格式,請按照以上格式書寫。
配置用戶 vi /home/svndata/repo/passwd  #加用戶名和密碼

[users]
# harry = harryssecret
# sally = sallyssecret
admin = admin
wwb = biao_123
5 配置權限/home/svndata/repo/conf/authz文件
此配置文件採用“基於路徑的授權”策略,中括號裏指定路徑,以下列出對各用戶的授權。包括只讀r,讀寫rw。沒有列出的用戶,則不允許訪問。還可以對用戶分組,
[/sa]
##[sa]指的是本地庫文件,之後會介紹
admin = rw
wwb = r
啓動服務 執行svnserve –d –r /home/svndata/repo這是小團隊項目的推薦方法. 這種方法維護最少, 配置最簡單. 指令簡介:此指令用於啓動svn服務,-d指明以守護模式運行,svn自動在3690端口監聽。3690是默認端口,可以使用“--listen-port=”或者“--listen-host=”來指定其它端口。-r選項用來指定svn服務的根目錄,這樣用戶就可以使用相對路徑訪問,而不用提供完整路徑。 使用以下命令檢出:(svnserver方式) svn checkout svn://127.0.0.1/dir 以上爲示例。IP需要根據具體情況調整,dir爲版本庫路徑,若在啓動時已指定則可省略。 版本庫信息在版本庫文件夾裏,所以要刪除版本庫只需要刪除版本庫所在的文件夾即可。 另外工作副本只是自己維護的文件夾,可以用Windows直接刪掉,對別人沒有影響。千萬不要使用版本庫的刪除命令,否則版本庫裏的內容也會被刪除。
啓動:
[root@localhost conf]# svnserve  -d -r /home/svndata/repo/
[root@localhost conf]# netstat -antp | grep svn
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN      6397/svnserve  
端口默認是3690,需要在防火牆配置文件中,[root@localhost conf]# vi /etc/sysconfig/iptables添加3690端口
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 3690  -j ACCEPT
[root@localhost conf]# service iptables restart    重啓iptables
查看iptables規則鏈
14   ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:svn
Ok,目前配置已經結束,下面就看如何在win下配置客戶端
在win下下載TortoiseSVN-1.6.6.17493-win32-svn-1.6.6.msi客戶端,安裝
在win下的硬盤下,配置本地庫


連上就ok了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章