svn在版本控制方面還是挺有用的。坑運維的人中就有研發,出補丁或版本的時候很堅定的說“升吧,沒問題”,結果升上去后就會狂報錯。所以運維的要在打補丁,尤其是改動很大的時候一定要把后路想好。否則會長時間的影響業務。svn就有一個很好的機制–回退(當然你也可以事先備份下),可以回退到之前的某個時間節點,操作很方便的。當然svn還有其他高級的用法,日后補上。并且svn不是單獨工作,它是和rsync和jenkins結合來玩的。下面介紹svn的編譯安裝,及簡單配置。rsycn和jenkins后續會有介紹的。
一、安裝前的準備工作:
源碼下載地址:http://subversion.apache.org/download.cgi 版本version 1.9.2
源碼存放于: /packages 下
$ yum install apr* apr-util* sqlite* -y
$ wget http://www.sqlite.org/sqlite-amalgamation-3071501.zip
解壓縮sqlite-amalgamation-3071501.zip
重命名:
$ mv sqlite-amalgamation-3071501 /prackages/subversion-1.9.2/sqlite-amalgamatio
$ ./configure –prefix=/usr/local/svn
$ make && make install
二、配置
1創建一個倉庫:
svnadmim create –fs-type fsfs -d /usr/local/svn/projects
執行這一步操作后projects目錄(倉庫)中會包含 :conf db format hooks locks README.txt 。配置文件和授權存放在了conf中;db存放數據庫;
hooks中存放鉤子函數;
2在目錄conf中進行相關配置
$ vim svnserve.conf
加入
[general]
anon-access = read 這個參數說明匿名用戶對svn服務器上的文件具有讀的權限
auth-access = write 這個參數說明取得授權的用戶具有讀寫權限
password-db = passwd 注意此處的passwd是個文件,這個文件用于存放授權用戶的密碼,此處也可以寫成 /path/to/SOME_FILE
$ vim authz
在[groups]下加入
admin = zhang 超級管理員的登錄用戶名
wanguser = wang 普通用戶的的登錄用戶名,像這樣的用戶可以建立多個
[/]
@admin = rw
@wanguser = r
$ vim passwd
[users]
zhang = zhang 等號右邊的"zhang"是用戶zhang的密碼
wang = wang 同上
3啟動svn服務
$useradd svn
$chmod -R svn:svn /usr/local/svn
$svnserve -d –listen-port 3690 -r /usr/local/svn (/usr/local/svn相當于svn服務器的根目錄,如果寫成其他路徑的話客戶端將無法連接。 )
$ps -ef|grep svnserve
$netstat -na|grep 3690
4找到SVN項目的hooks目錄
$vim hooks/post-commit
加入
#!/bin/bash /usr/local/svn/bin/svn checkout svn:192.168.11.128/projects /home/svn/zhang –username zhang –password zhang –no-auth-cache
路徑/home/svn/zhang用于存放正式的的項目(應用程序代碼)
至此配置完成。在windows環境下安裝一個客戶端就可以向svn服務器上上傳項目了。我用的是TortoiseSVN Repository Browser(一個客戶端工具,百度一下會有的),這樣svn就玩起來了。
原創文章,作者:馬仙山,如若轉載,請注明出處:http://www.www58058.com/9298
格式上可多向師兄姐學習
$chmod -R svn:svn /usr/local/svn 這里應該是chown