本文是在CentOS中采用yum安裝方式。優點:簡單,一鍵安裝,不用手動配置環境變量等。缺點:安裝位置為yum預設,比如我們公司伺服器上安裝軟體有自己的規定,一般會采用壓縮包安裝。
以下是我在CentOS7.2(阿裡雲伺服器)下部署方式,安裝步驟如下:
whereis svn 檢視svn安裝目錄
一、yum安裝subversion
1. 安裝subversion yum install subversion
2. 檢視安裝版本,檢查安裝是否成功 svnserve --version ,我裝的版本為 1.7.14
3. 檢視安裝位置 rpm -ql subversion
二、建立版本庫
1、建立SVN根目錄
mkdir /data/svn
2、建立版本庫:TestCode
svnadmin create /data/svn/TestCode
注:執行完後,/data/svn/TestCode目錄下檔案說明
README.txt 版本庫的說明檔案
conf 配置檔案件夾(後續操作最多的檔案夾)
db SVN資料檔案檔案夾
format 目前版本庫的版本号
hooks SVN的鈎子腳本檔案夾
locks SVN的檔案鎖相關的檔案夾
三、修改配置 進入conf目錄(該svn版本庫配置檔案)
authz檔案是權限控制檔案
passwd是帳号密碼檔案
svnserve.conf SVN服務配置檔案
1、設定帳号密碼
vi passwd 在[users]塊中添加使用者和密碼,格式:帳号=密碼,如 czyczy=czyczy

2、設定權限
vi authz
在末尾添加如下代碼:
[groups]
admin = czyczy
[/]
admin=rw
意思是版本庫的根目錄對其有讀寫權限,w隻有讀權限。
3、修改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 /data/svn/TestCode
配置防火牆
不一定每個人都需要設定,可以先測試後再看是否需要打開端口
# vi /etc/sysconfig/iptables
添加一下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
儲存後重新開機防火牆
# service iptables restart
或者關閉防火牆
1. 永久性生效
開啟:chkconfig iptables on
關閉:chkconfig iptables off
2. 即時生效,重新開機後失效
開啟:service iptables start
關閉:service iptables stop
五、linux/unix下svn自動更新
1.找到svn的所在目錄:
我的目錄在/usr/local/svn/myproject
2.建立post-commit
vim hooks/post-commit
#!/bin/sh
REPOS="$1"
REV="$2"
export +%Y-%m-%d %H:%M:%S"` >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
$SVN_PATH/svn update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >> $LOG_PATH
exit 0
3.給post-commit檔案設定權限
首先檢查代碼中是否有可執行指令 #!/bin/sh
然後 檢查post-commit權限
post-commit 腳本檔案的權限不對,post-commit 腳本必須有 +x 權限。
chown svn:svn post-commit
chmod +x post-commit
配置完成後重新啟動
檢視svn是否啟動
ps -ef|grep svnserve
kill -9 24872 終止該條程序