天天看點

[ubuntu下安裝svn] 安裝SVN步驟

安裝SVN步驟

1、安裝SVN server

sudo apt-get install subversion      

2、建立資料倉庫

svnadmin create /home/svn/project
 svnadmin create /home/svn/flash
 可以根據需要建立不同的資料倉庫      

3、啟動svn網絡服務

svnserve -d -r /home/svn
其中 -d 參數讓 svnserve 運作在背景,-r 參數限定了資料倉庫,在網絡上可以通路的位址。
/home/svn指定svn資料倉庫存放的目錄位置      

4、設定svn: 方式的通路權限

在每個資料倉庫目錄下都有一堆目錄,進入 conf 并打開 svnserve.conf 這個檔案,找到以下幾行,
 并把前面的注解符号 ‘#’ 去掉,注意千萬在每行的前面别留任何空格。
 anon-access = read
 auth-access = write
 password-db = passwd      
其中 anon-access 和 auth-access 分别為匿名和有權限使用者的權限,預設給匿名使用者隻讀的權限。      
但如果想拒絕匿名使用者的通路,隻需把 read 改成 none 就能達到目的。
password-db 後的 passwd 則為定義使用者名及密碼的檔案路徑。這個檔案預設跟 snvserve.conf 在同一個目錄,下面看看怎麼配置 passwd檔案中的内容。
[user]
# harry = harryssecret
# sally = sallyssecret
harry 和 sally 這兩行分别定義了可以對 repo 進行寫入的使用者的使用者名和密碼。我們可以在下面加上自己的使用者名和密碼,比如
testsvn = tester
這樣就給了使用者 testsvn 往 repo 中寫的權限。存盤退出後,svn 伺服器就算正式可以運作了!      
把所有需要管理的項目都放在 /home/svn這個目錄下,像正常那樣用 svnadmin create 指令建立資料倉庫
這樣就可以使用svn用戶端通過svn://位址/資料倉庫目錄 的方式通路各個資料倉庫了      

5、在Apache 中部署Subversion

安裝啟用mod_dav 和 mov_dav_svn 這兩個子產品
 sudo apt-get install apache2 subversion libapache2-svn      
确定 mod_dav 和 mod_dav_svn 被打開
 a2enmod dav dav_svn      
修改 /etc/apache2/conf 下的 httpd.conf,加入如下代碼:
<Location /svn>
DAV svn
SVNParentPath /home/svnproject
</Location>
這樣就可以通過 http://位址url/svn 通路/home/svnproject下的資料倉庫了      

6、設定使用者的權限和驗證

htpasswd -cmb /home/passwdfile/passwords user1 pass1
注意/home/passwdfile這個目錄必須存在      
然後回到我們在 httpd.conf 中添加的代碼,修改一下:
<Location>
DAV svn
SVNParentPath /home/svnproject
AuthType Basic
AuthName "Test Repository"
AuthUserFile /home/passwdfile/passwords
<LimitExcept GET PROPFIND OPTION REPORT>
Require valid-user
</LimitExcept>
</Location>
在這段代碼的控制下,任何人都可以對 repo 進行 checkout,但隻有 user1 才可以 commit
<LimitExcept> 的作用是控制 HTTP 請求,如果 HTTP 請求是 GET PROPFIND OPTION REPORT 中的一種,則不需要去驗證使用者      
最後,你需要把 repo 所在的目錄和檔案的所有權都改成系統中操作 Apache 的使用者,這樣在 commit 的時候才會被 Apache 認可。
在 Ubuntu 中,這個使用者叫 www-data
sudo chown -R www-data /home/svnproject      

繼續閱讀