1. 程式人生 > >Windows和Linux環境下搭建SVN伺服器

Windows和Linux環境下搭建SVN伺服器

--------------------------Windows下搭建SVN伺服器-----------------------------

一、安裝SVN服務端

軟體包Setup-Subversion-1.8.17.msi,下載地址:https://sourceforge.net/projects/win32svn/files/latest/download



二、SVN服務端命令

1.檢視SVN資訊


2.建立資料倉庫
首先建立一個總的倉庫目錄repository,然後在其下建立product和project兩個資料夾,分別作為產品和專案兩個倉庫的目錄:
SVN命令建立product和project倉庫:
  svnadmin create c:\repository\product
  svnadmin create c:\repository\project
倉庫建立後其目錄結構如下所示:


3.啟動SVN伺服器
  多倉庫啟動:svnserve -d -r c:\repository(同時啟動project和product兩個倉庫)
  單倉庫啟動:(兩個倉庫需要單獨啟動)
        svnserve -d -r c:\repository\product
        svnserve -d -r c:\repository\project
  伺服器上有多個SVN倉庫時,應該用多倉庫啟動命令

4.客戶端連線測試
  首先分別在兩臺計算機上安裝SVN客戶端:TortoiseSVN,下載網址:https://tortoisesvn.net/downloads.html
然後多倉庫啟動SVN伺服器,在本機和同一區域網上的計算機訪問product倉庫:



注意:總倉庫目錄repository訪問時不用輸入,SVN服務的預設埠號為3690,訪問地址可以寫成:svn://192.168.0.182:3690/product

三、許可權設定
1.svnserve.conf 伺服器配置
  # 匿名使用者訪問版本庫許可權,可選值read/write/none
  anon-access = none
  # 授權使用者訪問版本庫許可權,可選值read/write/none
  auth-access = write
  # 使用者名稱密碼檔案,可以使用絕對路徑,相對路徑是指相對於conf目錄的位置。注意:如果該選項不開啟,使用者名稱密碼檔案將失效
  password-db = passwd
  # 授權管理檔案,可以使用絕對路徑,相對路徑是指相對於conf目錄的位置。注意:如果該選項不開啟,授權管理將失效
  authz-db = authz
  # 版本庫認證域名稱,也就是需要認證的倉庫名
  realm = product
2.passwd 使用者密碼管理


  [users]
  zhangsan = zs123
  lisi = ls123
  wangwu = ww123
  alice = a123
  shine = 123456
3.authz 授權管理
  # 分組設定許可權
  [groups]
  # 開發人員
  develpoer = zhangsan,lisi
  # 測試人員
  tester= wangwu,alice

  # 設定根目錄許可權
  [/]
  # 開發人員讀寫許可權(給組分配許可權時前面加@符)
  @develpoer = rw
  # 測試人員讀許可權
  @tester= r
  # shine具有讀寫許可權
  shine = rw

  [/myapp/sql]
  # 張三使用者對於product倉庫下的“myapp/sql”目錄具有讀寫許可權
  zhangsan= rw
  # 李四具有讀許可權
  lisi= r
  # 張三無任何許可權
  zhangsan=
  # 其他任何人沒有任何許可權
  * =

四、將SVN設定成系統服務
  在windows下部署SVN伺服器,想讓SVN服務在系統開機時後臺自動啟動,可以註冊windows系統服務。
  例如:sc create SVN-Service binpath= "D:\Program Files\Subversion\bin\svnserve.exe --service -r c:\repository" displayname="SVN服務" start=auto depend=Tcpip
  服務啟動:net stat SVN-Service
  刪除服務:sc delete SVN-Service

---------------------Linux下搭建SVN伺服器-----------------------------

一、下載軟體和依賴包
  cd Desktop 
  wget http://mirrors.tuna.tsinghua.edu.cn/apache/subversion/subversion-1.9.7.tar.gz
  wget https://jaist.dl.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz
  wget http://archive.apache.org/dist/apr/apr-util-1.6.1.tar.gz 
  wget http://archive.apache.org/dist/apr/apr-1.6.3.tar.gz 
  wget http://www.sqlite.org/sqlite-amalgamation-3071501.zip
二、安裝軟體依賴包
1.安裝 apr.tar.gz
  cd Desktop
  tar -zxvf apr-1.6.3.tar.gz
  cd apr-1.6.3/ 
  ./configure --prefix=/usr/local/apr 
  make && make install 
2.安裝 apr-util.tar.gz
  cd Desktop
  tar -zxvf apr-util-1.6.1.tar.gz
  cd apr-util-1.6.1/ 
  ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-expat=/usr/local/expat
  make && make install
3.安裝 zlib-1.2.11.tar.gz
  cd Desktop
  tar -zxvf zlib-1.2.11.tar.gz 
  cd zlib-1.2.11/ 
  ./configure --prefix=/usr/local/zlib
  make && make install
4.安裝 subversion-1.9.7.tar.gz
  cd Desktop
  ar -zxvf subversion-1.9.7.tar.gz
  unzip sqlite-amalgamation-3071501.zip 
  mv sqlite-amalgamation-3071501 ./subversion-1.9.7/sqlite-amalgamation 
  cd subversion-1.9.7 
  ./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-zlib=/usr/local/zlib --without-berkeley-db --with-ssl 
  make
  make install
5.檢驗是否安裝成功
  cd /usr/local/svn/bin
  ./svnserve --version

 

三、安裝時可能會遇到的一些問題
 上面的安裝步驟都是kali linux上安裝的,再次從Ubuntu上安裝時可能會遇到下面的問題
1.安裝 apr.tar.gz執行./configure命令時最後出現下面的錯誤:
  config.status: executing libtool commands
  rm: cannot remove 'libtoolT': No such file or directory
  config.status: executing default commands
  解決方法:修改configure檔案,找到:$RM "$cfgfile" 這一行,將其註釋掉
2.安裝apr-util.tar.gz執行make命令時出現如下的錯誤:
  xml/apr_xml.c:35:19: fatal error: expat.h: 沒有那個檔案或目錄
  #include <expat.h>
  ^
  compilation terminated.
  解決方法:缺少expat庫,安裝expat-2.1.0.tar.gz,專案主頁:https://sourceforge.net/projects/expat/
    cd Desktop
    tar -zxvf expat-2.1.0.tar.gz
    cd expat-2.1.0
    ./configure --prefix=/usr/local/expat
    make
    make install
  重新編譯apr-util,再進行make:
    ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-expat=/usr/local/expat
    make
    make install

四、倉庫的建立和配置
Linux和Windows下對於倉庫的建立和配置方法一致,這裡不再描述。設定完成後啟動和訪問SVN服務

 


為了方便期間可新增環境變數:vi /etc/profile
  export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.11
  export PATH=$PATH:$ZOOKEEPER_HOME/bin:/usr/local/svn/bin