1.建立版本庫目錄
建立好的版本庫目錄與安裝目錄不在同級目錄下(可建立多個,建立庫後以下各項都需重新設定。注意區別安裝目錄與版本庫目錄,以下講的都是版本庫目錄)
mkdir -p /home/svn/repos
2.建立svn版本庫
與上面目錄對應
svnadmin create /home/svn/repos
執行此命令後svn自動在repos目錄下添加必須的設定檔.
3. 修改版本庫設定檔
vi
/home/svn/repos/conf/svnserve.conf
各參數功能在設定檔的注釋中有說明, 此處配置如下:
[general]
anon-access =none #
使非授權使用者無法訪問
auth-access = write # 使授權使用者有寫入權限
password-db = passwd # 指明密碼檔案路徑
authz-db = authz # 存取控制檔案
realm = /home/svn/repos #
認證命名空間,subversion會在認證提示裡顯示,並且作為憑證緩衝的關鍵字。
其它採用預設配置. 各語句都必須頂格寫, 左側不能留空格, 否則會出錯. 指令簡介:這是svn設定檔的格式,請按照以上格式書寫。
4. 配置使用者, passwd檔案
編輯passwd檔案
vi
/home/svn/repos/conf/passwd
輸入以下內容:
[users]
ls = 123
userone = 123
可以添加多個,此為使用者名稱密碼對。
5.配置許可權,authz檔案
編輯authz檔案
vi
/home/svn/repos/conf/authz
使用者組格式:
[groups]
<使用者組名> = <使用者1>,<使用者2>
其中,1個使用者組可以包含1個或多個使用者,使用者間以逗號分隔。
例如:
[repository:/]
版本庫目錄格式:
[<版本庫>:/項目/目錄]
@<使用者組名> = <許可權>
<使用者名稱> = <許可權>
其中,方框號內部分可以有多種寫法:
/,表示根目錄及以下。根目錄是svnserve啟動時指定的,我們指定/opt/svndata。這樣,/就是表示對全部版本庫設定許可權。
repos1:/,表示對版本庫1設定許可權
repos2:/abc, ,表示對版本庫2中的abc項目設定許可權
repos2:/abc/aaa, ,表示對版本庫2中的abc項目的aaa目錄設定許可權
許可權主體可以是使用者組、使用者或*,使用者組在前面加@,*表示全部使用者。許可權可以是w、r、wr和空,空表示沒有任何許可權。
例1:
[group]
admin=ls
test = userone
[repos:/]
@admin=rw
@test=r
注意:配置auth 、passwd和svnserve.conf一定要心細,否則用戶端訪問時會認證失敗,如不能訪問,百度和Google上有很多資料可供參考。配置完成,接下來該啟動svn嘍:svn預設連接埠是3690
6.啟動svn
svnserve -d -r 版本庫路徑 --listen-host 伺服器ip地址
如:
svnserve -d -r /home/svn --listen-host 192.168.1.101
啟動時遇到的問題:
啟動svnserve時出現cannot bind serversocket:address already in use
解決方案:
方法一:
找出svnserve id
殺死掉進程
ps ax | grep svnserve
kill -9 id
方法二:
重新指定一個連接埠號碼(預設連接埠3690)
svnserve -d --listen-port 3691 -r /home/svn/repos
7. 檢查是否啟動成功
查看是否存在svnserve 進程
ps ax | grep svnserve
8. 安裝用戶端,下載用戶端
安裝好後,訪問伺服器:svn:// 伺服器ip /repos。
9.查看id佔用連接埠
netstat -anp|grep 3690
10.刪除目錄
rm -rf /home/svn