### 安裝環境并創建SVN版本庫
#### 安裝
安裝Subversion:
```shell
yum install -y subversion
```
查看是否安裝成功:
```shell
svnserve --version
```
顯示如下資訊: svnserve, version 1.7.14 (r1542130)….
#### 創建版本庫
下面創建版本庫
- 建立目錄: `mkdir /cloudlink/webapp ``
- ``svnadmin create /cloudlink/webapp/project `
可以看到在project下生成如下版本檔案:
```
conf db format hooks locks README.txt
```
進入conf目錄可以看到:
- authz: 權限組態檔
- passwd: 用戶名口令組態檔
- svnserve.conf: 服務組態檔
### 配置用戶和組
#### 配置authz
```
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
cloudlink = xiefayang ### 將用戶加入用戶組
# [/foo/bar]
# harry = rw
# &joe = r
# * =
###用戶組cloudlink對版本庫project具有讀和寫的權限
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[project:/]
@cloudlink = rw
```
#### 配置passwd
```
[users]
# harry = harryssecret
# sally = sallyssecret
xiefayang = xiefayang
```
#### 配置`svnserve.conf`
找到如下配置項, 去掉”#”, 做相應配置
```
# 匿名用戶訪問權限: 無
anon-access = none
# 普通用戶訪問權限: 讀,寫
auth-access = write
# 密碼檔案
password-db = passwd
#權限組態檔
authz-db = authz
# 版本庫所在地
realm = /cloudlink/webapp/project
```
### 測驗
啟動SVN服務
```shell
svn -d -r /cloudlink/webapp
```
如果不能啟動成功就殺掉再重啟
```shell
ps aux | grep svn
```
測驗checkout, 切換到`/home/www`目錄下
```shell
svn co svn://localhost/project
```
查看是否檢出成功
測驗commit
```shell
vi test.py
svn add test.py
svn commit test.py -m "test commit file"
```
如果顯示提交成功,則服務器搭建成功.
**其他測驗**
在另一臺機器(windows)上安裝SVN, 這里我安裝了TortoiseSVN
點擊SVN Checkout: 填入相應倉庫地址, 用戶名和密碼, 點擊OK即可檢出

注意: 如果檢出失敗了, 就需要檢查一下`/etc/sysconfig`下的iptables. 加入:
```shell
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
```
### 鉤子實作自動更新和同步
這一步主要實作當更改完代碼提交到SVN服務器后, WEB目錄下的倉庫自動同步.
不需要手動update了
在剛才版本庫目錄的project下新建`post-commit`檔案
(post-commit意味提交后呼叫此檔案更新, post-commit.tmpl只是個模板, 不用管)
- `vi post-commit`
```shell
#!/bin/sh
export LANG=en_US.utf8
SVN_PATH=/usr/bin/svn
WEB_PATH=/home/www #web目錄
$SVN_PATH update $WEB_PATH --username 'xiefayang' --password '111111' --no-auth-cache
```
? 看看/home/www 的用戶組和所有者(假如都是:thank)
- 修改post-commit用戶為www的目錄用戶: `chown thank:thank post-commit`
- 賦予執行權限: `chmod 755 post-commit`
至此, 一定要區分[SVN服務器]和[WEB目錄]這兩個地址
如果SVN服務器和WEB目錄都在同一臺機器.
那么在其他地點修改代碼提交后, WEB目錄就會自動更新同步.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/128524.html
標籤:系統維護與使用區
上一篇:在CentOS上安裝docker
下一篇:Ubuntu
