原 Linux搭建SVN 服务器2
原 Linux搭建SVN 服務器
發表于1年前(2014-08-05 17:55)?? 閱讀(12257)?|?評論(3)?31人收藏此文章,?我要收藏 贊3 摘要?Linux搭建SVN 服務器?
目錄[-]
- Linux搭建SVN 服務器
- 1????????? 安裝SVN
- 2????????? 使用客戶端連接
- 2.1?????? 使用windows的客戶端
- 2.2?????? 使用Linux下的命令行
- 3????????? FAQ
- 3.1?????? 命令行方式連接,提示svn: No repository found in 'svn://192.168.11.229/project'錯誤?
- 3.2?????? 執行命令# svn co svn://192.168.11.229/project時提示“svn: Authorization failed”錯誤?
Linux搭建SVN 服務器
作者:?沈小然????日期:2014年?8月?5日
1??????????安裝SVN
官網下載:http://subversion.apache.org/packages.html
SVN客戶端:TortoiseSVN,官網下載:http://tortoisesvn.net/downloads.html
# yum install subversion
1.???????新建一個目錄用于存儲SVN所有文件
# mkdir /svn
2.???????新建一個資源倉庫
# svnadmin create /svn/project
# ls /svn/project/
conf??db??format??hooks??locks??README.txt
目錄用途說明:
l??hooks目錄:放置hook腳本文件的目錄
l??locks目錄:用來放置subversion的db鎖文件和db_logs鎖文件的目錄,用來追蹤存取文件庫的客戶端
l??format文件:是一個文本文件,里面只放了一個整數,表示當前文件庫配置的版本號
l??conf目錄:是這個倉庫的配置文件(倉庫的用戶訪問賬號、權限等)
3.???????配置svn服務的配置文件svnserver.conf文件
# vi /svn/project/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = /svn/project/conf/passwd
authz-db = /svn/project/conf/authz
realm = My Test Repository?????????#這是個提示信息
保存
4.???????添加兩個訪問用戶及口令
# vi /svn/project/conf/passwd
[users]
xiaoran.shen = 123456
test1 = 123456
test2 = 123456
保存
注意:對用戶配置文件的修改立即生效,不必重啟svn服務。?
5.???????配置新用戶的授權文件
# vi /svn/project/conf/authz
[groups]
admin = xiaoran.shen,test1
user = test2
?
[/]
@admin?= rw
@user?= r
* =
保存
格式說明:
版本庫目錄格式:?
[<版本庫>:/項目/目錄]?
@<用戶組名>?=?<權限>?
<用戶名>?=?<權限>
/?表示對根目錄(即/svn/project目錄)下的所有子目錄范圍設置權限;
[/abc]?表示對資料庫中abc項目設置權限;
創建一個admin組,組成員包括xiaoran.shen和test1
創建一個user組,成員只有test2;
admin組對目錄有讀寫權限;
單個用戶test2有讀寫權限;
*=表示除了上面設置的權限用戶組以外,其他所有用戶都設置空權限,空權限表示禁止訪問本目錄,這很重要一定要加上。
注意:對權限配置文件的修改立即生效,不必重啟svn。?
6.???????啟動svn服務
svnserve -d -r /svn/project/
注意:不要使用系統提供的?/etc/init.d/svnserve start?來啟動,因為系統默認的啟動腳本中沒有使用?–r /svn/project參數指定一個資源。這種情況下啟動的svn服務,客戶端連接會提示“svn: No repository found in 'svn://192.168.11.229/project'?”這樣的錯誤。
默認svn服務器端口是3690。
殺死svn服務:
# ps -ef|grep svn
root??????4642?????1??0 16:08 ?????????00:00:00 svnserve -d -r /svn/project/
root??????4692??3676??0 16:13 pts/2????00:00:00 grep svn
# kill -9 4642
?
若要使用/etc/init.d/svnserve?腳本,可以修改start()函數部分,如下:
start() {
????[ -x $exec ] || exit 5
????[ -f $config ] || exit 6
????echo -n $"Starting $prog: "
????daemon --pidfile=${pidfile} $exec $args?-r /svn/project
????retval=$?
????echo
????[ $retval -eq 0 ] && touch $lockfile
????return $retval
}
完成?2??????????使用客戶端連接
2.1???????使用windows的客戶端
打開TortoiseSVN Repository Browser工具
在URL中輸入:
svn://192.168.11.229回車,提示輸入用戶名和口令
2.2???????使用Linux下的命令行
#?svn co svn://192.168.11.229
?
3??????????FAQ
3.1???????命令行方式連接,提示svn: No repository found in 'svn://192.168.11.229/project'錯誤?
解決:啟動svn服務的時候沒有使用-r /svn/project參數,沒有指明資源庫的具體路徑。使用# svnserve -d -r /svn/project/?命令來啟動就可以了,不要使用/etc/init.d/svnserver腳本。
3.2???????執行命令# svn co svn://192.168.11.229/project時提示“svn: Authorization failed”錯誤?
解決:一般這種授權失敗的錯誤原因都來自conf/authz文件的配置
正確的配置如下:
[groups]
admin = xiaoran.shen,test1
user = test2
[/]
@admin?= rw
@user?= rw
* =
保存
總結
以上是生活随笔為你收集整理的原 Linux搭建SVN 服务器2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android fragment 菜单栏
- 下一篇: linux装机量,在没有盗版的世界Lin