TShopping

 找回密碼
 註冊
搜索
TShopping 精選文章 電腦網絡 查看內容

CentOS 下安裝SVN(Subversion)

2014-10-21 09:35| 發佈者: woff| 查看: 1611| 評論: 4|原作者: woff

摘要: 1.SVN簡介 由於前些年在版本的管理上採用的都是CVS系統,總體上而言還是很優秀的,經過了多年 的項目開發管理經歷,在使用CVS系統在管理中大型的軟件項目時還是遇到了很多不可克服的 缺陷和局限性,主要表現在如下的 ...
 
1.SVN簡介
由於前些年在版本的管理上採用的都是CVS系統,總體上而言還是很優秀的,經過了多年
的項目開發管理經歷,在使用CVS系統在管理中大型的軟件項目時還是遇到了很多不可克服的
缺陷和局限性,主要表現在如下的幾個方向:
    1. 無法進行文件名稱的修改活動,這樣一來就會導致必須先刪除該文件再上傳,丟失了
       歷史信息,要不就必須到服務上將xxx,v文件進行改名(我採用這種方法,不過總是
       找管理員太不方便了);
    2. 目錄名稱沒有被管理,這樣就不能進行改名等動作,其實項目的目錄結構對於項目的
       成功起了非常重要的作用,每次也只能到服務器上進行修改;
    3. 項目的分支代價太高,需要對每一個文件都進行標記,對於大的項目耗時太長,並且
       基本上不能刪除廢棄了的分支和標記,因為那樣很容易導致項目倉庫的損壞,我就遇
       到了好多次這種讓人發狂的情況;
    4. 對於文件二進制和文本的處理經常會出現混亂,結果就使將二進制文件當作文本上傳
       後內容被擴展導致丟失,因為有些時候二進制文件的擴展名和某些文本文件的擴展名
       相同了,所以導致CVS識別就會出錯。

      可以安裝並配置subversion(簡稱svn)系統,使用svn來替換CVS系統,以解決上述問題。
      Subversion有兩種運行方式,一種是基於Apache Http Server另外一種是Subversion Standalone Server。下面我講解的是基於Apache Http Server的Subversion,這樣做幾個好處
A.能使用WebDAV協議。
B.能使用瀏覽器作為客戶端工具瀏覽源碼倉庫。
C.可以很容易的支持到SSPI(Windows域認證)和LDAP(AD?),這些都是Apache本身就支持的。
D.能得到比較完善的Apache安全認證系統,比如SSL加密連接。

2.svn安裝
安裝系統:CentOS
安裝方式:yum install(這種方式比較簡單,如果用源碼安裝容易產生版本兼容的問題)
建議
      
最好將svn系統安裝在Linux操作系統環境下,這樣一來系統比較的穩定可靠,同時也可以減少很多的病毒和攻擊的服務器日常維護工作量,我將svn安裝在了CentOS的服務器版本下。
安裝:
           yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql
確定已經安裝了svn模塊:mod_dav_svn
           #cd /etc/httpd/modules
           #ls | grep svn
             mod_authz_svn.so
             mod_dav_svn.so


如果要確認是否成功的安裝了svn可以通過如下的命令進行驗證:  svn --version

           svn, 版本 1.6.11 (r934486)
   編譯於 Jun  8 2011, 16:21:54
Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
可使用以下的檔案庫存取 (RA) 模組:
* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme



3.apache的配置
配置/etc/httpd/conf/httpd.conf
(httpd的安裝目錄,一般是/etc/httpd或/usr/local/appache2)
進入到/etc/conf目錄下用vim打開httpd.conf配置文件進行選項的修改:
            a. KeepAlive選項(可選)
               該選項可以修改也可以不修改,主要是為了提高http協議訪問的性能,可以
               使得svn倉庫的訪問更快,KeepAlive表示可以保持http的永久性TCP連接,
               省去了每次都需要進行重建TCP連接的巨大開銷,找到如下幾個選項並修改:
                  KeepAlive On
                  MaxKeepAliveRequests 100
                  KeepAliveTimeout 15
             b. ServerAdmin/ServerName選項(可選)
                對於需要對系統進行管理的可以在ServerAdmin選項設置成為管理員的email
                地址,這樣在出現問題時apache會自動發送郵件到該地址中;而ServerName
                必須設置為本服務器的域名,如xxx.xxx.cn:80。

       為了使客戶端能夠通過Apache來訪問SVN檔案庫,Apache需要加載一個特殊的模塊mod_dav_svn。如果您的Apache是按照與預設目錄安裝的,mod_dav_svn 模塊應該會安裝在 Apache 安裝位置 (默認路徑是 /usr/local/apache2) 的 modules 子目錄內。同時在Apache的配置文件httpd.conf(默認路徑為/usr/local/apache2/conf)中已經使用LoadModule指令加載了該模塊(如果沒有,請手動添加)LoadModule 指令的語法很簡單, 就是將一個具名模塊對映到共享鏈接庫在磁盤上的位置:
LoadModule dav_svn_module modules/mod_dav_svn.so

注意這個指令必須出現在其它的 Subversion 相關指令之前。
還要加載mod_authz_svn.so模塊
LoadModule authz_svn_module modules/mod_authz_svn.so

如圖:


測試Apache是否可以正常啟動:
       #vim /etc/httpd/conf/httpd.conf -- Edit what you need and save the file
       #/etc/init.d/httpd start
       #chkconfig httpd on
在瀏覽器中訪問:http://localhost, 如果能看到Apache的頁面,則說明Apache已經正常啟動。

Apache命令:
       啟動:/etc/init.d/httpd start
       關閉:/etc/init.d/httpd stop
       重啟:/etc/init.d/httpd restart
       查看日誌:tail -f /etc/httpd/logs/error-log



4.svn的配置
進入到/etc/httpd/conf.d目錄下用vim打開subversion.conf配置文件進行選項的
修改:
a. module的配置
一定要保證下面的兩句話存在於配置文件中,否則無法在如svn的模塊,就
無法訪問svn的倉庫了:
               LoadModule dav_svn_module     modules/mod_dav_svn.so
               LoadModule authz_svn_module   modules/mod_authz_svn.so
b. 倉庫目錄配置
項目倉庫就是用於存放項目目錄結構的服務器目錄,一般情況下Linux的規則時間容易變化的內容存放在/var目錄下,所以我們需要在/var目錄下創建一個svn目錄,這樣所有的項目的根目錄都作為/var/svn/目錄下的一級子目錄了,這樣以來就可以在一個倉庫目錄下存放多個項目了。
              
下面將使用myapp這個倉庫來配置Subversion
# mkdir -p /var/svn

# cd /var/svn

# svnadmin create myapp

# chown -R apache.apache myapp

# vi /etc/httpd/conf.d/subversion.conf
加入以下配置
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location /svn>
DAV svn
SVNParentPath /var/svn
#
#   # Limit write permission to list of valid users.
#   <LimitExcept GET PROPFIND OPTIONS REPORT>
#      # Require SSL connection for password protection.
#      # SSLRequireSSL
#
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /var/svn/passwd
Require valid-user
#   </LimitExcept>
</Location>
下面建立可訪問用戶文件
# htpasswd -c /var/svn/passwd myapp

要增加用戶,則使用下面命令
# htpasswd /var/svn/passwd other

重起Apache
# service httpd restart

Subversion部分安裝完成,打開瀏覽器訪問http://localhost/svn/myapp即可看到效果。
在CENTOS 6下 須注意SELINUX
  1. <div>chown -R apache.apache /home/svn/myapp</div><div>chcon -h system_u:object_r:httpd_sys_content_t /home/svn/myapp</div><div>chcon -R -h apache:object_r:httpd_sys_content_t /home/svn/myapp</div>
複製代碼
打開瀏覽器 如 http://localhost/svn/myapp
如下圖
a.png



建立相關連結指令

  1. mkdir -p /tmp/svn/{trunk,branches,tags}
複製代碼
  1. svn import -m 'Initializing basic repository structure' /tmp/svn/ http://localhost/repos/newrep/
複製代碼

b.png
發表評論

最新評論

引用 zxc60638 2012-3-26 00:52
不錯,感謝樓主
引用 woff 2014-10-21 09:35
我喜歡!感謝大大的分享
引用 y883292572 2015-3-19 03:59
谢谢啦,很有用!
引用 sobvh 2015-7-29 14:45
回帖是必须的,这个可以有!












电影世界抽奖传

查看全部評論(4)



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-3-29 08:35 , Processed in 0.100640 second(s), 24 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

返回頂部