編程學習網 > 編程教程 > SVN 教程
2015
10-18

SVN 在Linux上安裝

清華大佬耗費三個月吐血整理的幾百G的資源,免費分享!....>>>

SVN安裝

Subversion是流行的開放源碼的版本控制工具。 因為它是開放源碼,它是一個互聯網上免費提供。默認情況下,大多數的GNU/Linux發行,所以它可能是你的系統上已經安裝了。要檢查它是否安裝或不使用下面的命令。

[jerry@CentOS ~]$ svn --version

如果沒有安裝Subversion客戶端,然后命令將報告錯誤,否則它會顯示安裝的軟件版本。

[jerry@CentOS ~]$ svn --version
-bash: svn: command not found

如果使用的是GNU/Linux基于RPM,然后使用yum命令進行安裝。安裝成功后,執行的svn - version命令。

[jerry@CentOS ~]$ su -
Password: 
[root@CentOS ~]# yum install subversion

[jerry@CentOS ~]$ svn --version
svn, version 1.6.11 (r934486)
compiled Jun 23 2012, 00:44:03

如果使用的是基于Debian GNU/Linux的命令進行安裝然后用apt

[jerry@Ubuntu]$ sudo apt-get update
[sudo] password for jerry:

[jerry@Ubuntu]$ sudo apt-get install subversion

[jerry@Ubuntu]$ svn --version
svn, version 1.7.5 (r1336830)
compiled Jun 21 2013, 22:11:49

Apache安裝

我們已經看到了如何在GNU/Linux上安裝Subversion客戶端。讓我們來看看如何創建新的存儲庫,并允許用戶訪問。

我們必須在服務器上安裝的Apache 的 httpd模塊和svnadmin工具。

[jerry@CentOS ~]$ su -
Password: 
[root@CentOS ~]# yum install mod_dav_svn subversion

mod_dav_svn 包允許使用HTTP訪問到存儲庫,從Apache httpd 服務器和顛覆包安裝svnadmin 工具。

Subversion版本讀取它的配置從 /etc/httpd/conf.d/subversion.conf 文件.,增加配置后 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/www/svn
   AuthType Basic
   AuthName "Authorization Realm"
   AuthUserFile /etc/svn-users
   Require valid-user
</Location>

讓我們創建Subversion用戶,并授予他們訪問到存儲庫。 htpasswd的命令是用來創建和更新純文本文件,用來存儲用戶HTTP基本身份驗證的用戶名和密碼。 “-c”選項創建密碼文件,如密碼文件已經存在,它是覆蓋。這就是為什么只有第一次使用'-c'選項。 '-m'選項啟用MD5加密密碼。

用戶設置

讓我們創建用戶tom。

[root@CentOS ~]# htpasswd -cm /etc/svn-users tom
New password: 
Re-type new password: 
Adding password for user tom

讓我們創建用戶 jerry

[root@CentOS ~]# htpasswd -m /etc/svn-users jerry
New password: 
Re-type new password: 
Adding password for user jerry
[root@CentOS ~]# 

創建Subversion版本父目錄來存儲所有的工作(詳細風 /etc/httpd/conf.d/subversion.conf).

[root@CentOS ~]# mkdir /var/www/svn
[root@CentOS ~]# cd /var/www/svn/

信息庫設置

創建項目庫名為project_repo。 svnadmin 命令將創建新的存儲庫,里面存儲元數據和其他一些目錄。

[root@CentOS svn]# svnadmin create project_repo

[root@CentOS svn]# ls -l project_repo
total 24
drwxr-xr-x. 2 root root 4096 Aug  4 22:30 conf
drwxr-sr-x. 6 root root 4096 Aug  4 22:30 db
-r--r--r--. 1 root root    2 Aug  4 22:30 format
drwxr-xr-x. 2 root root 4096 Aug  4 22:30 hooks
drwxr-xr-x. 2 root root 4096 Aug  4 22:30 locks
-rw-r--r--. 1 root root  229 Aug  4 22:30 README.txt

讓我們改變存儲庫的用戶和組所有權。

[root@CentOS svn]# chown -R apache.apache project_repo/

檢查是否啟用SELinux或不使用SELinux狀態工具。

[root@CentOS svn]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

對于我們的服務器上啟用SELinux的,所以我們不得不改變SELinux的安全上下文。

[root@CentOS svn]# chcon -R -t httpd_sys_content_t /var/www/svn/project_repo/

為了讓承諾通過HTTP執行以下命令。

[root@CentOS svn]# chcon -R -t httpd_sys_rw_content_t /var/www/svn/project_repo/

重新啟動Apache服務器,我們完成配置Apache服務器。

[root@CentOS svn]# service httpd restart
Stopping httpd:                                            [FAILED]
Starting httpd: httpd: apr_sockaddr_info_get() failed for CentOS
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]
[root@CentOS svn]# service httpd status
httpd (pid  1372) is running...
[root@CentOS svn]#

我們已經配置成功,現在Apache服務器配置存儲庫。庫訪問只有通過身份驗證的用戶,使用默認的授權文件,添加以下幾行到 project_repo/conf/svnserve.conf 文件

anon-access = none
authz-db = authz

每個Subversion項目通常有 trunk, tags 和 branches 目錄項目的根目錄下。

樹干(trunk )是一個目錄,在所有主要的發展發生,通常是簽出開發人員工作的項目。

標簽目錄是用來存儲的項目命名的快照。當創建一個產能釋放,團隊將標記的代碼,進入釋放。

當想要追求發展的不同線路的分支目錄。

讓我們創建的樹干(branches),標簽和分支的目錄結構,根據項目資料庫。

掃碼二維碼 獲取免費視頻學習資料

編程學習