?????之前工作中從事開發(fā)都是完成功能方面的事情,對于linux配置方面了解到的比較少,一般也都有運維人員來完成。今天有個機會,幫同事搭建svn版本控制器。一邊網(wǎng)上查找資料一邊配置,終于配置完成了。心里還有些小高興,從此我對svn的權(quán)限、組之類的有個具象的概念,我要記錄一下。
安裝環(huán)境:centos6.+,安裝模式y(tǒng)um
檢查已安裝版本
#檢查是否安裝了低版本的SVN
[root@localhost /]# rpm -qa subversion
#如果存儲舊版本,卸載舊版本SVN
[root@localhost modules]# yum remove subversion
安裝SVN
[root@localhost modules]# yum install subversion
驗證安裝
檢驗已經(jīng)安裝的SVN版本信息
[root@localhost modules]# svnserve --version
svnserve,版本 1.6.11 (r934486)
編譯于 Jun 23 2012,00:44:03
版權(quán)所有 (C) 2000-2009 CollabNet。
Subversion 是開放源代碼軟件,請參閱 http://subversion.tigris.org/ 站點。
此產(chǎn)品包含由 CollabNet(http://www.Collab.Net/) 開發(fā)的軟件。
下列版本庫后端(FS) 模塊可用:
* fs_base : 模塊只能操作BDB版本庫。
* fs_fs : 模塊與文本文件(FSFS)版本庫一起工作。
Cyrus SASL 認證可用。
代碼庫創(chuàng)建
SVN軟件安裝完成后還需要建立SVN庫
[root@localhost modules]# mkdir -p /opt/svn/repo
[root@localhost modules]# svnadmin create /opt/svn/repo
執(zhí)行上面的命令后,自動建立repo測試庫,查看/opt/svn/repo 文件夾發(fā)現(xiàn)包含了conf, db,format,hooks, locks, README.txt等文件,說明一個SVN庫已經(jīng)建立。
配置代碼庫
進入上面生成的文件夾conf下,進行配置
[root@localhost modules]# cd /opt/svn/repo/conf
用戶密碼passwd配置
[root@localhost password]# cd /opt/svn/repos/conf
[root@admin conf]# vim passwd
修改passwd為以下內(nèi)容:
[users]
# harry = harryssecret
# sally = sallyssecret
hello=123
用戶名=密碼
這樣我們就建立了hello用戶,123密碼
以上語句都必須頂格寫,左側(cè)不能留空格,否則會出錯.
權(quán)限控制authz配置
[root@admin conf]# vi + authz
目的是設置哪些用戶可以訪問哪些目錄,向authz文件追加以下內(nèi)容:
[groups]
php=yonghu,yonghu2,yonghu3?#創(chuàng)建用戶分組,可對組遠進行權(quán)限、訪問目錄設置
android=yonghu5,yonghu6
#設置[/]代表SVN目錄下所有的資源
[/] 或者寫成[repl:/]
hello = rw #意思是hello用戶對repo測試庫下所有的目錄有讀寫權(quán)限,當然也可以限定。
#代表svn目錄下的android文件夾
[/adnroid]
@android=rw #android組的用戶擁有讀寫權(quán)限
以上語句都必須頂格寫,左側(cè)不能留空格,否則會出錯.
服務svnserve.conf配置
[root@admin conf]# vim svnserve.conf
追加以下內(nèi)容:
[general]
#匿名訪問的權(quán)限,可以是read,write,none,默認為read
anon-access=none
#使授權(quán)用戶有寫權(quán)限
auth-access=write
#密碼數(shù)據(jù)庫的路徑
password-db=passwd
#訪問控制文件
authz-db=authz
#認證命名空間,subversion會在認證提示里顯示,并且作為憑證緩存的關鍵字
realm=/opt/svn/repositories
以上語句都必須頂格寫,左側(cè)不能留空格,否則會出錯.
配置防火墻端口
[root@localhost conf]# vi /etc/sysconfig/iptables
添加以下內(nèi)容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重啟防火墻
[root@localhost conf]# service iptables restart
啟動SVN
svnserve -d -r /opt/svn/repo
查看SVN進程
[root@localhost conf]# ps -ef|grep svn|grep -v grep
root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /opt/svn/repo
檢測SVN 端口
[root@localhost conf]# netstat -ln |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
停止重啟SVN
[root@localhost password]# killall svnserve //停止
[root@localhost password]# svnserve -d -r /opt/svn/repo // 啟動
如果已經(jīng)有svn在運行,可以換一個端口運行
svnserve -d -r /opt/svn/ --listen-port 3391
測試
SVN服務已經(jīng)啟動,使用客戶端測試連接。
客戶端連接地址:svn://192.168.15.231
用戶名/密碼: hello/123
測試創(chuàng)建文件夾等操作。