1. 程式人生 > >Linux svn服務端配置

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)
編譯於

 Jun 23 201200: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
[root@localhost modules]#mkdir -p /opt/svn/             #

建立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

修改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            #aaasvn下的所有版本庫有讀寫許可權

[repo:/]            #repo:/,表示對repo版本庫下的所有資源設定許可權

@admin = rw         #admin組的使用者對repo版本庫有讀寫許可權

[repo2:/occi], ,表示對版本庫repo2中的occi專案設定許可權

[repo2:/occi/aaa], ,表示對版本庫2中的occi專案的aaa目錄設定許可權  許可權主體可以是使用者組、使用者或*,使用者組在前面加@*表示全部使用者。許可權可以是wrwr和空,空表示沒有任何許可權。

以上語句都必須頂格寫左側不能留空格否則會出錯.

服務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服務端就配置完成了