subversion(SVN)安裝配置

簡介
subversion(簡稱svn)是近年來崛起的版本管理軟件系統,是cvs的接班人。目前,絕大多數開源軟件都使用svn做爲代碼版本管理軟件。
Subversion是一個版本控制系統,相對於的RCS、CVS,採用了分支管理系統,它的設計目標就是取代CVS。互聯網上免費的版本控制服務多基於Subversion。sql

1、所需軟件環境檢查:
  1.apr  apr-util zlib 這幾個軟件請參閱《LAMP基礎環境搭建》中的安裝路徑或安裝方法。
 
  2.還須要SQLite
    SQLite,是一款輕型的數據庫,是遵照ACID的關聯式數據庫管理系統,它的設計目標是嵌入式的,並且目前已經在不少嵌入式產品中使用了它,它佔用資源很是的低,在嵌入式設備中,可能只須要幾百K的內存就夠了。
   
    而SQLite的使用方案有兩種:
    方案一:能夠只解壓sqlite-amalgamation包,將解壓文件拷貝到subversion解壓後的源碼安裝目錄中去。           
            官方解釋:This ZIP archive contains all C source code for SQLite 3.8.1 combined into a single source file.
            譯:這個zip文件是融合了SQLite 3.8.1全部C源代碼的單一文件。
            換句話說:它只是源文件,沒有配置安裝文件,因此不能用來完整安裝。數據庫

    方案二:安裝Sqlite數據庫完整軟件包,在編譯subversion時加上 --with-sqlite=/usr/local/sqlite/ 選項
            官方解釋:A tarball containing the amalgamation for SQLite 3.8.1 together with an configure script and makefile for building it.
            譯:一個融合了SQLite 3.8.1源代碼,幷包含配置腳本configure及編譯文件makefile的打包文件。
            換句話說:這個源碼包是能夠按常規步驟編譯安裝的。windows


2、執行安裝(兩安裝方案任選其一)緩存

    方案一:能夠只解壓sqlite-amalgamation包,將解壓文件拷貝到subversion解壓後的源碼安裝目錄中去。
            A.解壓 sqlite-amalgamation 源碼包
              # unzip sqlite-amalgamation-3080100.zip服務器

            B.解壓 subversion 軟件包:
              # tar -zxvf subversion-1.8.4.tar.gzsvn

            C.拷貝 sqlite-amalgamation 源碼包到 subversion 解壓包中,並改名爲sqlite-amalgamation
              注:假定sqlite包與subversion包是解壓在同級目錄的。
              # cp -r ./sqlite-amalgamation-3080100 ./subversion-1.8.4/sqlite-amalgamation測試

            D.進入subversion解壓目錄,配置編譯
              # cd subversion-1.8.4
              # ./configure --prefix=/usr/local/subversion/ --with-apr=/usr/local/apr-httpd/ --with-apr-util=/usr/local/apr-util-httpd/ --with-zlib=/usr/local/zlib/ --enable-maintainer-mode
              # make
              # make installui


    方案二:安裝Sqlite數據庫完整軟件包,在編譯 subversion 時加上 --with-sqlite=/usr/local/sqlite/ 選項操作系統

            注1: 確認已安裝apr  apr-util  zlib軟件包 此處略述... 請參閱《LAMP基礎環境搭建》
    
            注2: 關於Sqlite數據庫安裝方法,此處略述... 請參閱《sqlite數據庫安裝配置》設計

            # tar -zxvf subversion-1.8.4.tar.gz && cd subversion-1.8.4
            # ./configure --prefix=/usr/local/subversion/ --with-apr=/usr/local/apr-httpd/ --with-apr-util=/usr/local/apr-util-httpd/ --with-zlib=/usr/local/zlib/ --with-sqlite=/usr/local/sqlite/ --enable-maintainer-mode
     
               選項解析
               --prefix=/usr/local/subversion/             指定subversion要安裝的目錄
               --with-apr=/usr/local/apr-httpd/            指定apr對應安裝目錄
               --with-apr-util=/usr/local/apr-util-httpd/  指定apr-util對應安裝目錄
               --with-zlib=/usr/local/zlib/                指定zlib對應安裝目錄
               --with-sqlite=/usr/local/sqlite/            指定sqlite對應安裝目錄
               --enable-maintainer-mode                    啓用調試提醒模式

            # make
            # make install


3、測試是否安裝成功(若是看到版本信息說明成功)
    # /usr/local/subversion/bin/svnserve --version


4、能夠將SVN相關命令添加到環境變量搜索路徑
    # echo "# 添加subversion環境變量:" >> /etc/profile
    # echo "PATH=$PATH:/usr/local/subversion/bin" >> /etc/profile
    # export PATH
    # source /etc/profile


5、配置subversion
  1.創建版本庫總目錄: /opt/mySVNdata(目錄位置能夠自定)
    # mkdir -p /opt/mySVNdata    版本庫總目錄   


  2.在版本庫目錄中 建立第1個「項目版本庫」命名爲:martinZFsvn ;第2個爲項目命名爲:martinTP
    # svnadmin create /opt/mySVNdata/martinZFsvn  //第1個項目
    # svnadmin create /opt/mySVNdata/martinTP     //第2個項目

    注:版本庫不一樣於通常的文件夾, 直接在操做系統上新建文件沒法被SVN識別, 必須使用import命令將文件導入版本庫。此爲svn內部指令,create用於新建版本庫。請使用svn help查看詳細使用說明。


  3.編輯新建的「項目版本庫 martinZFsvn 」的配置文件 svnserve.conf
    「項目版本庫 martinZFsvn 」建立生成時,會在其目錄下一同建立:conf db ...幾個文件,conf爲配置文件目錄。

    # vi /opt/mySVNdata/martinZFsvn/conf/svnserve.conf

    參考約第19 20行,添加:
    anon-access = none         # 設置非受權用戶沒法訪問
    auth-access = write        # 設置受權用戶有寫權限

    參考約第29行,添加:
    password-db = passwd       # 指定用於存放用戶/密碼的配置文件名(在conf目錄中,也能夠本身改名)

    參考約第39行,添加:
    authz-db = authz           # 指定用於存放權限控制的文件名(在conf目錄中,也能夠本身改名)

    參考約第51行,添加:
    realm = realm_martinZFsvn  # 認證命名空間,subversion會在認證提示裏顯示,而且做爲憑證緩存的關鍵字
    官方解釋:指定了Repository的驗證領域。若是兩個Repository有相同的驗證領域,那麼它們應該有相同的密碼數據庫,反之亦然。默認的領域就是指向當前的Repository的路徑,與服務器的Repository的根目錄相關。


  4.編輯用戶/密碼配置文件 passwd ,並添加用戶

    # vi /opt/mySVNdata/martinZFsvn/conf/passwd

    在[users]裏添加幾個用戶及對應密碼,如:
    [users]   
    martin1 = 12345
    martin2 = 123456
    grptest1 = 123
    grptest2 = 456


  5.編輯權限配置文件 authz ,對用戶受權

    # vi /opt/mySVNdata/martinZFsvn/conf/authz

    A.若是想對用戶分組管理:
      在組區塊[groups]添加:
      group1 = grptest1,grptest2  # 好比組名爲group1;多個組成員用逗號分割(如:grptest1,grptest2)

    B.在最末尾添加:   
      [/]                   [/]表示對項目的根目錄設置權限
      martin1 = r           讀
      martin2 = rw          讀寫
      @group1 = rw          讀【對組受權要加 @】

      注:只讀r,寫w;沒有列出的用戶沒有任何權限,不容許訪問;
       
    C.也可單獨對項目根下的某個目錄設置權限:
      [/db_config]          [/db_config]表示項目根目錄下的「db_config」文件夾的設置權限
      @group1 = r           讀【對組受權要加 @】

      注:「db_config」這個文件件怎麼建立?這是在SVN服務器配置好以後,讓一個權限很高的用戶在客戶端登陸SVN,而後建立此目錄。

      經過上面配置達到目的: A.martin1對根下全部目錄有r權限;
                            B.martin2對根下全部目錄有rw權限;
                            C.group1組成員對根下全部目錄有rw權限,但對/db_config只有r權限;

6、啓動svn服務
    # /usr/local/subversion/bin/svnserve -d -r  /opt/mySVNdata

      選項解析:
      --listen-port=3690 3690是默認端口,可使用「--listen-port=3690」 來顯式指定其它端口。
      -d 指明以守護模式運行(後臺運行),
      -r 選項用來指定svn服務的根目錄,這樣用戶就可使用相對路徑訪問(svn://192.168.1.xx/martinZFsvn),而不用提供完整路徑(svn://192.168.1.xx/opt/mySVNdata/martinZFsvn)
         /opt/mySVNdata 是版本庫目錄(絕對路徑)

    查看狀態:
    # ps -le | grep svnserve
    # netstat -tunpl | grep svnserve

    設置隨系統自啓動:
    # echo "# subversion隨系統自啓動:" >> /etc/rc.d/rc.local
    # echo "/usr/local/subversion/bin/svnserve -d -r  /opt/mySVNdata" >> /etc/rc.d/rc.local


    關閉svn服務
    # killall svnserve

7、windows客戶端鏈接    svn://192.168.1.xx/martinZFsvn   # 訪問第1個項目    svn://192.168.1.xx/martinTP      # 訪問第2個項目

相關文章
相關標籤/搜索