Linux平台下Subversion的安裝與配置(一)__Linux

來源:互聯網
上載者:User

本文將介紹如何在Linux環境下(以Redhat9為例) 通過Subversion 來構建小組開發過程中最為重要的版本控制環境,包括Subversion 環境的安裝配置,以及用戶端的配置和使用。(某些操作,如make install需要root許可權,簡便起見,在沒有特殊說明的情況下,下面的工作均使用root賬戶完成。)

1. 安裝Apache HTTP Server

 

httpd是web伺服器,httpd和subversion 配合,可用來通過web訪問subversion,得到httpd-2.2.4.tar.bz2檔案後,通過以下命令解壓:

tar -jxvf httpd-2.2.4.tar.bz2

進入解壓後的目錄後,執行

./configure --enable-dav --enable-so --enable-nonportable-atomics 

其中,--enable-dav允許Apache提供DAV協議支援;--enable-so允許運行時載入DSO模組 ;--enable-nonportable-atomics可以在486以上的CPU上啟用更加高效的基於互斥執行的原子操作。前兩個參數是必須要加的,你還可以根據您的需要添加其他的參數。httpd預設安裝目錄為/usr/local/apache2,可通過--prefix參數指定。

另外,網路上有些howto上有在此時使用--enable-maintainer-mode參數,建議在正式的使用環境中不要使用,該參數使用所有警告和偵錯符號編譯原始碼,會影響效能。

完成後使用make命令編譯httpd,執行make install則完成對httpd的安裝,預設路徑為/usr/local/apache2。

 

安裝完成後,進入 /usr/local/apache2/bin目錄,使用

./apachectl start啟動httpd

在瀏覽器中開啟http://localhost/,如果能正常顯示“It Works。”,則證明已經安裝成功。

 

 

2.安裝Subversion

 

subversion的安裝稍有技巧,需要下載subversion-1.4.3.tar.bz2 和subversion-deps-1.4.3.tar.bz2兩個壓縮包,並且解壓至同一目錄下,這樣subversion會自動地編譯、安裝依賴庫;若習慣性的先安裝依賴庫,後安裝subversion,則依賴庫的編譯需要手動進行。

進入解壓後的目錄,執行

./configure --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2

其中,--with-apxs 用於產生apache httpd的mod_dav_svn和mod_authz_svn模組;--with-apr 和 --with-apr-util=參數指向 Apache 的安裝根目錄,而不是使用預設的 SVN 安裝包中內建的 apr ,否則如果你安裝的 Apache 版本不同有可能導致 APR 庫不匹配,出現類似:

Can't set position pointer in file '/svn/test/db/revs/1': Invalid argument 的錯誤。(同樣可以通過  --prefix參數指定安裝目錄)

Configure完成後,執行makemake install命令完成安裝。

Subversion編譯完成後會自動在 /usr/local/apache2/conf/httpd.conf 添加

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

這兩行,並且將產生的mod安裝到apache2的modules目錄。

 

3.建立repository

 

假設我們把版本庫建立在/home目錄下,那麼執行mkdir repository建立版本庫檔案夾,

通過svnadmin create repository/test命令可建立名為test的版本庫。

若建立成功,則subversion的安裝便已成功完成。

 

這裡,我使用了fsfs資料庫格式,這是subversion目前的預設資料存放區形式,如果想要使用Berkeley DB作為資料庫格式,則需要在安裝subversion之前安裝Berkeley DB,並在編譯subversion時使用—with-berkeley-db參數,然後可以使用

svnadmin create --fs-type bdb repository/test 命令來建立版本庫。(關於兩者的對比可參考Version Control with Subversion(中文書名為《使用subversion進資料列版本設定》)第5章)。

 

 

4.匯入原始碼

 

現在,我們已經有了一個可用的版本庫了,接下來我們使用

mkdir –p import/{trunk,branches,tags} 命令在/home/svnroot目錄下建立一個名為import的新檔案夾,包含trunkbranchestags 三個子目錄,目錄結構如下圖所示。

至於為什麼這麼做,大家可以參考Version Control with Subversion第4章。

 

Some dir

        |---import

               |---trunk

               |---branches

               |---tags

 

下面這條語句將把路徑/home/svnroot/import下的目錄和檔案匯入到你建立的Subversion 倉庫中去,

提交後的修訂版為1。

svn import /home/svnroot/import file:///home/svnroot/repository/test m "Init repository"

這裡/home/svnroot/import可以使用相對路徑,但file:///home/svnroot/repository/test必須以絕對路徑表示。

 

 

5.版本庫所有者和許可權修改

 

目前,repository目錄依然為root使用者所有,預設許可權為755,為了讓使用者能夠通過apache正常讀寫該目錄,我們需要先將該目錄以及該目錄的上層目錄svnroot的所有權交給apache httpd(安裝apache httpd的時候,會自動增加apache使用者組和apache使用者),然後為了安全起見,將re

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.