CentOS-7 下安裝配置 Subversion
Centos下,yum命令即可完成安裝:
$sudo yum installsubversion
或者
#yum installsubversion
測試是否安裝成功:
$svnserve --version
注意上面的命令是兩個減號。
使用#netstat-ntlp可以檢視目前系統網路服務的執行情況。
建立版本庫:
建立SVN資料目錄:
(subversion預設是把var/svn作為資料根目錄的,開機預設啟動也是這個位置)
$ sudo mkdir -p/var/svn
建立版本庫:
$sudo svnadmin create /var/svn/<version-db-name>
如果刪除版本庫:
$sudo rm -rf/var/svn/<version-db-name>
配置svn配置檔案
每個版本庫建立之後都會生成svnserve.conf主要配置檔案,編輯這個檔案:
$sudo vim /var/svn/<version-db-name>/conf/svnserve.conf
編輯示例:
[general]
anon-access=none #控制非鑑權使用者訪問版本庫的許可權
auth-access=write #控制鑑權使用者訪問版本庫的許可權
password-db=passwd #指定使用者名稱口令檔名
authz-db=authz #指定許可權配置檔名
realm=<version-db-name> #指定版本庫的認證域,即在登陸時提示的認證域名稱
編輯svn使用者配置檔案:
$sudo vim /var/svn/<version-db-name>/conf/passwd
編輯示例:
[users]
admin=admin-pwd #使用者名稱=密碼
fuhd=fuhd-pwd #使用者名稱=密碼
test=test-pwd #使用者名稱=密碼
編輯svn控制權限配置檔案:
$sudo vim /var/svn/<verskion-db-name>/conf/authz
編輯示例:
[groups]
admin=admin #admin為使用者組,等號之後的admin為使用者名稱
test=fuhd,test
[<version-db-name>:/] #表示根目錄(
@admin=rw#表示admin組對根目錄有讀寫許可權。
[<version-db-name>:/test]#表示test目錄(/var/svn/<version-db-name>/test)
@test=rw #表示test組對test目錄有讀寫許可權
啟動、檢視和停止svn服務:
啟動:
#-d:守護程序,-r:SVN資料根目錄
$sudo svnserve -dr /var/svn #用root許可權啟動
在使用上面的命令之後,可能導致後面的systemctl啟動服務的時候報錯,原因是服務預設使用的埠號被佔用,用#ps -ef指令檢視後發現
svnserve程序已經啟動,可以使用kill指令先關閉程序,然後再執行systemctl啟動服務的操作。
檢視svn服務:
$ps aux|grep svnserve #預設埠為:3690
配置防火牆埠:
首先要明確centos7的防火牆為firewalld和之前的版本不同,之前可能是iptables。subversion預設的埠是3690,如果沒有開啟會報錯:
$sudo firewall-cmd --permanent --add-port=3690/tcp
$sudo firewall-cmd --reload
檢索專案和切換專案的url
專案檢索:
$svn checkout svn://192.168.0.xxx/XXX_project. #使用checkout伺服器資源本地目錄
切換專案url:
$svn switch --relocate svn://192.168.0.aaa/xxx_projectsvn://192.168.0.bbb/xxx_project #使用switch遷移fromto新的地址
設定開機啟動:
$sudo systemctl enable svnserve.service #注意:根目錄必須是/var/svn這樣才能設定成功
#設定開機啟動後就可以按照下面的方式開啟或停止服務了。
$sudo systemctl start svnserve.service
$sudo systemctl stopsvnserve.service
儲存退出,重啟,並從客戶端進行測試。
如果報錯如下:svn:E204900:Cannot open file '/var/svn/<subversion-db-name>/format';Permissiondenied.就表明與SELinux有關係。
臨時關閉SELinux:
$sudosetenforce 0 #注意報錯程式碼不一定是E204900.
永久關閉:
$sudo vim /etc/sysconfig/selinux
修改:
SELINUX=disable #值修改為disable