一直以來對SVN(subversion)的認識隻停留在簡單的概念上,至于到底是做什麼用的、怎麼用還是比較茫然,偶然的機會要為公司分部門搭建SVN,這才從頭到尾的理清了一遍SVN這神奇的軟體。在這裡寫下我的操作過程留作記錄,同時也與大家一起分享。
對于SVN的介紹大家可以參考網上,他的确是一款不錯的檔案版本管理軟體,對于從事開發工作的人來說更是一款不錯的利器,大家可以規律的操作同一個檔案,而不用擔心檔案管理混亂的問題。本為主要講述Linux系統下的SVN環境搭建,由于大家經常使用SVN用戶端通路伺服器端,是以我們要配合apache來使用。
一、準本工作
以下是需要的軟體包以及下載下傳位址。
libxml2-devel(SVN編譯解釋環境) 本地CD光牒自帶
openssl-devel(SSL加密所需環境) 本地CD光牒自帶
expat(解析XML開發庫) 本地CD光牒自帶
二、安裝部署
準備好應有的軟體後就可以進行安裝部署了,下面對每一個安裝進行說明。
1、apr
arp(Apache Portable Runtime)大家可以了解為一個可移至的運作庫,相當于給底層的SVN提供API接口,其實這個安裝包在subversion-deps裡面有,但是由于版本直接的依賴關系我們還是下載下傳最新版本的進行另外安裝,否則會出現意外的報錯。
tar zxf apr-1.4.5.tar.gz
cd apr-1.4.5
./configure //預設的安裝位置為 /usr/local/apr
make
make install
2、apr-util
簡單的幾步就完成了apr的安裝,apr-util也同樣是所依賴的庫檔案,安裝方法如下。
tar zxf apr-util-1.3.12.tar.gz
cd apr-util-1.3.12
./configure –with-apr=/usr/local/apr //指定apr的安裝目錄
3、httpd
apache的編譯安裝相信大家已經非常常見了,這裡不做過多的解釋,隻不過是需要加上一些編譯參數,将我們安裝的apr指定進去即可。
tar zxf httpd-2.2.19.tar.gz
cd httpd-2.2.19
./configure –prefix=/usr/local/apache2 –with-apr=/usr/local/apr/bin/apr-1-config –with-apr-util=/usr/local/apr/bin/apu-1-config –enable-modules=so –enable-dav –enable-maintainer-mode –enable-rewrite
4、libxml2-devel
從網上查找資料後發現這個開發包是SVN使用過程中的一種彙編語言,如果不安裝的話SVN編譯是不通過的,大家可以從本地的系統CD光牒中使用rpm包進行安裝,如果有依賴關系可以使用yum的方式安裝。當然前提是本地沒有這個軟體包,可以使用rpm -qa檢視一下。
yum install libxml2-devel
5、openssl-devel
這個相信大家一看就明白了,一般在帶有ssl參數編譯的源碼包中,openssl是不可缺少的環境,首先用rpm-qa檢視軟體是否安裝,這裡推薦大家使用yum方式安裝openssl-devel,因為有多個包之間有依賴關系。
yum install openssl-devel
6、expat
這個軟體包也是和XML環境有關系,非常有意思,如果不安裝的話在subversion最後的make install過程中會報錯,同樣大家可以從本地的CD光牒中找到該軟體包。
yum install expat
7、subversion && subversion-deps
忙碌了半天終于準備好SVN的安裝環境了,這裡為什麼要把兩個安裝包放在一起呢,因為deps是subversion所需的依賴環境,安裝過程也十分簡單。
tar zxf subversion-1.6.17.tar.gz
tar zxf subversion-deps-1.6.17.tar.gz
cd cd subversion-1.6.17
rm -fr apr* //因為我們在前面已經另外編譯過apr,是以這裡删除掉
./configure –prefix=/usr/local/svn –with-apxs=/usr/local/apache2/bin/apxs –with-apr=/usr/local/apr/bin/apr-1-config –with-apr-util=/usr/local/apr/bin/apu-1-config –with-ssl –enable-maintainer-mode
三、SVN簡單管理
按照上面的步驟如果沒有看到error報錯的話說明安裝已經成功了,下面主要介紹一下SVN簡單的使用與管理,更加詳細的說明請大家參考其他文章,因為對于SVN的使用有很多介紹。
1、建立版本倉庫
mkdir -p /svn/object/test //這裡我要把test目錄作為SVN的版本庫
cd /usr/local/svn/bin/
./svnadmin create /svn/object/test //建立版本倉庫
2、修改apache配置檔案,在httpd.conf最後加入如下語句,并且将User/Group那裡改成apache,如果沒有這個使用者請手動建立。
<Location /svn> //指定SVN的通路路徑
DAV svn //指定哪一個子產品是相應處理SVN請求
SVNListParentPath on //列出所有版本庫
SVNParentPath /svn/object/ //SVN根的絕對路徑
AuthType Basic //采用基本認證,使用使用者名/密碼
AuthName “Subversion repositories” //彈出認證資訊對話框的描述内容
AuthUserFile /svn/object/passwd //指定認證的密碼檔案
AuthzSVNAccessFile /svn/object/authz //指定SVN通路的規則檔案
Require valid-user //指定隻有輸入正确的使用者密碼才可以通路版本庫
</Location>
3、配置passwd檔案,在經過上面的配置後使用浏覽器通路位址 http://伺服器IP/svn/test 看到有認證資訊說明配置是成功的,下面就要為SVN指定哪些使用者可以通路我們的内容,這裡使用者名我們假定為admin1與admin2。
cd /usr/local/apache2/bin
./htpasswd -c /svn/object/passwd admin1 //這裡-c隻在第一次建立使用
./htpasswd /svn/object/passwd admin2 //輸入密碼即可完成使用者密碼建立
4、隻有passwd還不夠,需要配合authz檔案的使用我們才可以正常通路我們的SVN版本庫,authz檔案需要我們手動建立,進入/svn/object目錄使用vi authz指令建立規則檔案如下。
[groups] //設定使用者群組
mygroups=admin1,admin2
[test:/] //指定test版本庫的通路權限
@mygroups=rw //mygroups裡的成員對test庫有讀寫的權限
5、啟動SVN,使用如下指令啟動SVN,我們的SVN版本庫就可以正常工作了。
/usr/local/svn/bin/svnserve -d -r /svn/object/test //-d指定背景運作
可以将這句話加入到rc.local檔案中讓其開機自動啟動
四、SVN用戶端測試
在進行了一系列的設定後,SVN的搭建工作終于接近尾聲,接下來就是測試一下我們的SVN是否可用。
1、使用浏覽器通路 http://伺服器IP/svn/test 輸入我們先前設定的使用者名與密碼後如果能開到“test – Revision 0: /”說明工作正常。
2、推薦大家使用SVN用戶端TortoiseSVN進行測試,使用用戶端可以完成SVN目錄映射到本地,以及檔案建立、更改、上傳的操作,這裡不做進一步示範,至此SVN環境搭建結束。
寫在最後
看過很多篇文章後才總結出自己的思路,這裡也希望大家能夠參考更多文章對SVN這個神奇的軟體能夠有自己的一些看法,以上隻是本人對subversion粗淺的認識與整理,最後也希望能夠與大家一起讨論其中的問題與不足。
本文轉自阿布ve 51CTO部落格,原文連結:http://blog.51cto.com/abuve/695938,如需轉載請自行聯系原作者