阿里雲CentOS安裝SVN
阿新 • • 發佈:2019-02-11
1、環境
centos7
2、安裝svn
yum install subversion
檢視版本
svnserve --version
3、建立版本庫
先建目錄
mkdir /var/svn
建立版本庫
cd /var/svn
svnadmin create /var/svn/svnrepos
cd svnrepos
會看到自動生成的版本庫檔案:
subversion目錄說明:
db目錄:就是所有版本控制的資料存放檔案。
hooks目錄:放置hook指令碼檔案的目錄。
locks目錄:用來放置subversion見艱苦鎖定資料的目錄,用來追蹤存取檔案庫的客戶端。
format檔案:是一個文字檔案,裡面只放了一個整數,表示當前檔案庫配置的版本號。
conf目錄:是這個倉庫的配置檔案(倉庫的使用者訪問賬號、許可權等)。
進入conf目錄(該svn版本庫配置檔案)cd conf/
authz檔案是許可權控制檔案
passwd是帳號密碼檔案
svnserve.conf SVN服務配置檔案
設定帳號密碼
vi passwd
在[users]塊中新增使用者和密碼,格式:帳號=密碼,例如:dennis=0454
設定許可權
vi authz
在末尾新增如下程式碼:
[/]
dennis=rw
(r:讀,w:寫)
修改svnserve.conf檔案
vi svnserve.conf
開啟下面的幾個註釋:
anon-access = read #匿名使用者可讀
auth-access = write #授權使用者可寫
password-db = passwd #使用哪個檔案作為賬號檔案
authz-db = authz #使用哪個檔案作為許可權檔案
realm = /var/svn/svnrepos # 認證空間名,版本庫所在目錄
啟動svn版本庫
svnserve -d -r /var/svn/svnrepos
停止SVN命令
killall svnserve
用ps -ef | grep svn 檢視服務是否開啟
重點來了
現在我的nginx執行檔案(/usr/local/nginx/html)和svn(/usr/bin/svn)的執行檔案不在一起,所以要寫一個鉤子把他們連結起來。在svn所在的hooks資料夾下新建一個 post-commit 檔案,然後將檔案裡寫入:
#!/bin/sh
export LANG=en_US.UTF-8
SVN=/usr/bin/svn
WEB=/usr/local/nginx/html
$SVN update $WEB --username dennis --password 0454
寫好後執行:
chmod 777 /var/svn/svnrepos/hooks/post-commit
關閉svnserve:
killall svnserve
啟動svnserve:
svnserve -d -r /var/svn/svnrepos
接下來在nginx坐在的執行檔案裡(/usr/local/nginx/html)執行
svn checkout svn://IP/
svn update