Linux svn服務端配置
Linux svn服務端配置
檢查已安裝版本
#檢查是否安裝了低版本的SVN
[root@localhost /]#rpm -qa subversion
#如果儲存舊版本,解除安裝舊版本SVN
[root@localhost modules]#yum remove subversion
安裝SVN
[root@localhost modules]#yum install subversion
驗證安裝
檢驗已經安裝的SVN版本資訊
[root@localhost modules]# svnserve --version
svnserve,版本 1.6.11 (r934486)
編譯於
版權所有 (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庫
[root@localhost modules]#mkdir -p /opt/svn/ #
[root@localhost modules]#svnadmin create /opt/svn/repo #建立repo測試庫執行上面的命令後,自動建立repo測試庫,檢視/opt/svn/repo 資料夾發現包含了conf, db,format,hooks, locks, README.txt等檔案,說明一個SVN庫已經建立。
配置程式碼庫
進入上面生成的資料夾conf下,進行配置
[root@localhost modules]#cd /opt/svn/repo/conf
使用者密碼passwd配置
[root@localhost password]#cd /opt/svn/repo/conf
[root@admin conf]#vim passwd
[users]# harry = harryssecret# sally = sallyssecret
hello = 123
aaa = 123
www = 123
使用者名稱=密碼
這樣我們就建立了hello使用者, 123密碼
以上語句都必須頂格寫, 左側不能留空格, 否則會出錯.
許可權控制authz配置
[root@admin conf]#vim authz
目的是設定哪些使用者可以訪問哪些目錄,向authz檔案追加以下內容:
[groups] #組
admin = hello,www #建立一個admin組,將使用者加入到組
[/] #根目錄許可權設定(就是“svn”這個資料夾)
aaa = rw #aaa對svn下的所有版本庫有讀寫許可權
[repo:/] #repo:/,表示對repo版本庫下的所有資源設定許可權
@admin = rw #admin組的使用者對repo版本庫有讀寫許可權
[repo2:/occi], ,表示對版本庫repo2中的occi專案設定許可權
[repo2:/occi/aaa], ,表示對版本庫2中的occi專案的aaa目錄設定許可權 許可權主體可以是使用者組、使用者或*,使用者組在前面加@,*表示全部使用者。許可權可以是w、r、wr和空,空表示沒有任何許可權。
以上語句都必須頂格寫, 左側不能留空格, 否則會出錯.
服務svnserve.conf配置
[root@admin conf]#vim svnserve.conf
追加以下內容:
[general]
#匿名訪問的許可權,可以是read,write,none,預設為read
anon-access = none
#使授權使用者有寫許可權
auth-access = write
#密碼資料庫的路徑
password-db = passwd
#訪問控制檔案
authz-db = authz
#認證名稱空間,subversion會在認證提示裡顯示,並且作為憑證快取的關鍵字
realm = /opt/svn/repo
以上語句都必須頂格寫, 左側不能留空格, 否則會出錯.
配置防火牆埠(或直接關閉防護牆)
[root@localhost conf]#vim /etc/sysconfig/iptables
新增以下內容:
-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/ #指定SVN根目錄
檢視SVN程序
ps -ef|grep svnserve
使用import匯入檔案
svn import /mnt/ file:///opt/svn/repo/-m "註釋"
增加 /mnt/hgfs
提交後的版本為 1。
檢測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 // 啟動
如果已經有svn在執行,可以換一個埠執行
svnserve -d -r /opt/svn/ --listen-port 3391
啟伺服器及測試:
1,啟SVN服務,並指定SVN的根目錄:
[root@youxia201 test]# svnserve -d -r/opt/svn/
使用checkout匯出檔案
在這裡特別的要注意,/opt/svn是倉庫的根目錄,不要和[svntest:/]目錄重疊了。如果重疊是會提示錯誤
[root@localhost conf]# svn checkoutsvn://127.0.0.1/repo #本機測試,必需寫錯127.0.0.1
認證領域: /opt/svn/repo
“root”的密碼: 直接回車
認證領域: /opt/svn/repo
使用者名稱: hello
“hello”的密碼:
-----------------------------------------------------------------------
注意! 你的密碼,對於認證域:
/opt/svn/repo
只能明文儲存在磁碟上! 如果可能的話,請考慮配置你的系統,讓 Subversion
可以儲存加密後的密碼。請參閱文件以獲得詳細資訊。
你可以通過在“/root/.subversion/servers”中設定選項“store-plaintext-passwords”為“yes”或“no”,
來避免再次出現此警告。
-----------------------------------------------------------------------
儲存未加密的密碼(yes/no)?yes
取出版本 1。
不讓它每次輸入都提示yes/on的辦法
編輯vim /root/.subversion/servers 找到下行去掉#號將on改為yes,上面綠色部分已提示
store-plaintext-passwords = no
---------------------------------------------------------------------------------------------------------------------
到此,SVN服務端就配置完成了