ubuntu 安裝SVN

1、安裝SVN server


sudo apt-get install subversion

2、創建數據倉庫


svnadmin create /home/svn/qasvn
svnadmin create /home/svn/test
可以根據需要建立不同的數據倉庫

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 分別爲匿名和有權限用戶的權限,默認給匿名用戶只讀的權限。

但如果想拒絕匿名用戶的訪問,只需把 anon-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 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下的數據倉庫了

SVNParentPath和SVNPath的區別

SVNParentPath:支持多個具備相同父目錄的Subversion版本庫。
SVNPath:只支持一個父目錄的Subversion版本庫

SVNPath   /svn/repository/project1 #如果你想對每個項目單獨配置,使用該項

SVNParentPath  /svn/repository #設定一個根,所有項目均放在此目錄下

6、設定用戶的權限和驗證


htpasswd -cmb /home/passwdfile/passwords user1 pass1
注意/home/passwdfile這個目錄必須存在

當再次添加一個用戶和密碼時,htpasswd命令就無須加'-c'參數了,'-c'代表新建一個文件,如果再次添
加用戶時,又加了-c 則上一個用戶將被覆蓋掉

然後回到我們在 httpd.conf 中添加的代碼,修改一下:
<Location /svn>
DAV svn
SVNParentPath /home/svn
AuthType Basic
AuthName "Test Repository"
AuthUserFile /home/passwdfile/passwords
Require valid-user
</Location>

最後,你需要把 repo 所在的目錄和文件的所有權都改成系統中操作 Apache 的用戶,這樣在 commit
的時候纔會被 Apache 認可。在 Ubuntu 中,這個用戶叫 www-data
sudo chown -R www-data /home/svnproject


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章