公司內部須要配置局域網SVN,須要在在內部虛擬機服務器搭建,搭建過程作個記錄,供參考。
注:若是條件容許,儘可能在windows下搭建svn服務器,很省事,尤爲是權限配置很是方便又易懂,效果相同mysql
若是確認沒有svn能夠直接進入安裝步驟sql
保證當前系統沒有安裝svn
使用命令,嘗試查看是否已經安裝了svnwindows
rpm -qa subversion
或者,咱們直接在所有文件中查找svn文件夾就能夠,使用以下命令查找,任意文件目錄下輸入服務器
find / -name svn
若是發現svn文件夾首先要確認是否爲svn的文件夾,有些軟件內置svn文件夾及相關服務,注意不要看錯了。
如:
svn
下面幾行的svn是在redmine下的svn因此它是不須要進行處理的,若存在svn,則進行刪除或者卸載。
若是是壓縮包安裝只許刪除全部相關文件spa
rm -rf [目標文件夾]
若是使用的是yum安裝則:code
yum remove subversion
出現確認輸入y 便可,直至卸載完成
使用命令ip
rpm -qa subversion
沒有出現svn版本說明卸載成功內存
分別執行以下命令(安裝必須在聯網狀況下完成)安裝svn和相關依賴包開發
yum install subversion
yum install mod_dav_svn
yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql
安裝完成後進行確認是否安裝成功,根目錄下輸入
cd /etc/httpd/modules
執行
ls | grep svn
出現以下內容便可
mod_authz_svn.so
mod_dav_svn.so
到此爲止svn服務器基本安裝完成
新建一個目錄用於版本庫,存放版本庫信息(這一步能夠省略)
mkdir -p /usr/local/svn/repo
建立一個版本庫
svnadmin create /usr/local/svn/repo
上面的位置就是版本庫的位置,文件內存放該版本庫的相關信息
進入配置文件目錄
cd /usr/local/svn/repo/conf
[general] anon-access = read auth-access = write password-db = passwd authz-db = authz
分別解釋一下上面四行的意思
打開文件添加帳戶信息
[user] admin = 123456 root = root
admin爲登錄的用戶名,123456是密碼,使用回車分割用戶
在[/]下添加
[/] admin = rw root = rw * = r
解釋一下啊上面的配置
admin用戶具備根目錄下全部文件的rw(read,write)讀寫 權限,其餘用戶用*代替,其餘用戶只有讀的權限
至此svn服務器的基本配置和用戶配置已經完成
能夠在svn客戶端訪問地址
svn://ip
注意咱們使用的是svn協議來完成svn庫的訪問
實際開發中會使用不一樣的分組來分類svn帳號,進而實現權限控制
對用戶進行分組,authz文件中的[groups]下添加,多個組員之間用 「,」 隔開
[groups] group1 = admin group2 = root
上面就是把amdin分到group1組,root分到group2組
在[/]下添加
[/] @group1= rw @group2 = rw * = r
能夠批量對組的權限進行控制
假設咱們在版本庫根目錄下有兩個文件夾分別爲 user 和 project文件夾
如今設置user文件夾只有group1組的人員能夠進行讀寫,其餘用戶組只可讀,project文件夾只有group2組能夠讀寫,group1組只有讀權限,而且其餘用戶不可見(注意最後一行)
咱們能夠在authz文件中添加以下配置
[/user] @group1 = rw * = r [/project] @group2 = rw @group1 = r * =
注意:對文件夾權限進行配置的時候,倉庫裏有多少個文件夾, 就得爲每個文件夾都分配權限,否則不起做用
完~