標籤:
1,該文章出處部落格園: http://www.cnblogs.com/zhoulf/archive/2013/02/02/2889949.html
zhoulf 2013-02-02 原創安裝說明
系統內容:CentOS-6.3
安裝方式:yum install (源碼安裝容易產生版本相容的問題)
安裝軟體:系統自動下載SVN軟體
檢查已安裝版本
#檢查是否安裝了低版本的SVN
[[email protected] /]# rpm -qa subversion
#卸載舊版本SVN
[[email protected] modules]# yum remove subversion
安裝SVN
[[email protected] modules]# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql
確認已安裝了svn模組
[[email protected] /]# cd /etc/httpd/modules
[[email protected] modules]# ls | grep svn
mod_authz_svn.so
mod_dav_svn.so
驗證安裝
檢驗已經安裝的SVN版本資訊
[[email protected] modules]# svnserve --version
svnserve,版本 1.6.11 (r934486)
編譯於 Jun 23 2012,00:44:03
著作權 (C) 2000-2009 CollabNet。
Subversion 是開放原始碼軟體,請參閱 http://subversion.tigris.org/ 網站。
此產品包含由 CollabNet(http://www.Collab.Net/) 開發的軟體。
下列版本庫後端(FS) 模組可用:
* fs_base : 模組只能操作BDB版本庫。
* fs_fs : 模組與文字檔(FSFS)版本庫一起工作。
Cyrus SASL 認證可用。
程式碼程式庫建立
SVN軟體安裝完成後還需要建立SVN庫
[[email protected] modules]# mkdir -p /opt/svn/repositories
[[email protected] modules]# svnadmin create /opt/svn/repositories
執行上面的命令後,自動建立repositories庫,查看/opt/svn/repositories 檔案夾發現包含了conf, db,format,hooks, locks, README.txt等檔案,說明一個SVN庫已經建立。
配置程式碼程式庫
進入上面產生的檔案夾conf下,進行配置
[[email protected] modules]# cd /opt/svn/repositories/conf
使用者密碼passwd配置
[[email protected] password]# cd /opt/svn/repositories/conf
[[email protected] conf]# vi + passwd
修改passwd為以下內容:
[users]
# harry = harryssecret
# sally = sallyssecret
zhoulf=123456許可權控制authz配置
[[email protected] conf]# vi + authz
目的是設定哪些使用者可以訪問哪些目錄,向authz檔案追加以下內容:
#設定[/]代表根目錄下所有的資源
[/]
zhoulf=rw服務svnserve.conf配置
[[email protected] conf]# vi + svnserve.conf
追加以下內容:
[general]
#匿名訪問的許可權,可以是read,write,none,預設為read
anon-access=none
#使授權使用者有寫入權限
auth-access=write
#密碼資料庫的路徑
password-db=passwd
#存取控制檔案
authz-db=authz
#認證命名空間,subversion會在認證提示裡顯示,並且作為憑證緩衝的關鍵字
realm=/opt/svn/repositories配置防火牆連接埠
[[email protected] conf]# vi /etc/sysconfig/iptables
添加以下內容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
儲存後重啟防火牆
[[email protected] conf]# service iptables restart
啟動SVN
svnserve -d -r /opt/svn/repositories
查看SVN進程
[[email protected] conf]# ps -ef|grep svn|grep -v grep
root 12538 1 0 14:40 ? 00:00:00 -d -r /opt/svn/repositories
檢測SVN 連接埠
[[email protected] conf]# netstat -ln |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
停止重啟SVN
[[email protected] password]# killall svnserve //停止
[[email protected] password]# svnserve -d -r /opt/svn/repositories // 啟動
測試
SVN服務已經啟動,使用用戶端測試連接。
用戶端串連地址:svn://192.168.15.231
使用者名稱/密碼: zhoulf/123456
測試建立檔案夾等操作。
BUT:我遇到了問題一直報
Can‘t connect to host ‘192.168.1.121‘: 由於串連方在一段時間後沒有正確回覆或串連的主機沒有反應,串連嘗試失敗。
解決辦法:1,我找了很久發現是centOS 防火牆問題
service iptables stop
關閉防火牆,就可以正常遷入遷出檔案.
2,這點真是日了狗了,我按照上面博主的教程,一直報錯,防火牆也是這樣設定的,後來我發現是插入語句:-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT 放的位置有問題。
現在我的虛擬機器 /etc/sysconfig/iptables 檔案開啟是這樣子
只要將 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT 放到--reject 也就是commit上面兩行的後面就會一直取不到,我放到空格處,就不會報錯會可以正常更新。
//自動啟動svn服務
二,我們已經可以配置自己的庫了,但是每次開機都要手動啟動svn服務台繁瑣,我們設定linux開機啟動服務。
解決方案1:將啟動命令寫到 svnserve -d -r /opt/svn/repositories 放在 /etc/rc.d/rc.local最後一行
實際上rc.local裡面英文的大致意思就是:等其他初始化指令碼執行完了就會執行該指令碼.這個很容易理解 這裡面可以直接執行shell命令,當然也可以執行其他shell指令碼。
格式為 程式名 程式路徑
例如 a.sh /home/a.sh 將該命令加入到rc.local最後一行
2:自己手寫啟動指令碼(實際上就是將svnserve -d -r /opt/svn/repositories 放到指令碼裡面),並且設定為服務,開機啟動,這個有點冗長:我已經試過了成功:
連結一:http://blog.sina.com.cn/s/blog_5f54f0be0101b3bs.html
連結二: http://blog.csdn.net/jiedushi/article/details/6767445/ 這個有點小問題,讀者自己摸索
//to-do 配置多個庫
三, 解決方案 1,同一目錄下建立兩個svn目錄,最後啟動服務的時候,以父目錄為標準
具體請看:http://blog.sina.com.cn/s/blog_8882a6260101a4ox.html
解決方案2,http://mw-fang.iteye.com/blog/1787766 方法2這個我嘗試了,有問題,若有朋友測試成功麻煩請告訴我
小結:實際上centOS上一次只能啟動一個svn服務(我自己都感覺不妥當,連接埠設定不同的可以開啟多個???)
上面第一種方法確實可以建立多個庫,但是實際上還是兩個庫的根目錄作為 svn總的庫房··
和建立一個庫,先取出來 然後建立兩個檔案夾 各自分類管理的 效果是一模一樣···
就此作罷!
[轉載+整理]centOS 6.3 上配置SVN伺服器