Mac環境下Linux下SVN server搭建

近日由於項目需要在Linux server上搭建一個SVN的server環境,於是在網上尋找了一些資料,在參考各位網友文章的基礎上,成功搭建了svn服務器。期間也碰到一些問題,特在此記錄一下。


【1】SSH登錄到雲服務器

Mac下,SSH登錄到雲服務器比較簡單,命令如下:ssh [email protected] -p 2xx3;

其中,“2xx3”爲服務器對應的SSH端口號


【2】下載SVN server包

使用yum安裝subversion

[root@singledb ~]# yum install -y subversion


安裝完成之後,進行驗證:

[root@singledb ~]# svnserve --version


【問題】

安裝完成之後,出現warning:

svn: warning: cannot set LC_CTYPE locale
svn
: warning: environment variable LANG is en_US.UTF-8
svn
: warning: please check that your locale name is correct

【解決方式】

sudo vi /etc/profile
加入一行:
export LC_ALL=C
source /etc/profile

【3】創建SVN倉庫

當前目錄爲root;直接創建SVN文件夾;

[root@singledb ~]# mkdir ./svn

[root@singledb ~]# svnadmin create ./svn/devsvn  --"devsvn"爲版本庫名稱

創建完成之後,可以進入devsvn,用ls查看,是否創建了對應的文件夾,裏面應該有"README.txt  conf  db  format  hooks  locks",這幾個文件;


【3.1】svn配置

SVN的配置,需要配置以下幾個文件:

1svnserve.conf  svn服務配置文件下。

2passwd 用戶名口令文件。

3authz 權限配置文件。

********************************************************

svnserve.conf 文件, 該文件配置項分爲以下5項:

       anon-access: 控制非鑑權用戶訪問版本庫的權限。

       auth-access:  控制鑑權用戶訪問版本庫的權限。

       password-db: 指定用戶名口令文件名。

       authz-db:指定權限配置文件名,通過該文件可以實現以路徑爲基礎的訪問控制。

       realm:指定版本庫的認證域,即在登錄時提示的認證域名稱。若兩個版本庫的認證域相同,建議使用相同的用戶名口令數據文件

修改“svnserve.conf ”文件如下:

[root@singledb ~]# cd ./svn/devsvn/conf

[root@singledb ~]# vi svnserve.conf

shit + i ,進入編輯模式;(原先,下面幾行應該是註釋掉了,打開,並進行修改)

修改內容如下:

anon-access = none
auth-access = write
password-db = /root/svn/devsvn/conf/passwd
authz-db = /root/svn/devsvn/conf/authz

修改完成之後,按下“esc”退出編輯模式;

:wq + 回車 保存好文件,退回到命令行模式;


********************************************************
修改passwd文件

[root@singledb ~]#vi passwd

同樣添加用戶和密碼如下:

[users]

# harry = harryssecret

dev1 = dev1pwd

dev2 = dev2pwd

。。。這裏根據自己的需要,隨意添加賬戶;

同樣保存退出;

********************************************************
修改authz文件, 爲各個賬戶設立分組,分別給與不同的權限;

[root@singledb ~]# vi authz

[groups]

admin = dev1, dev2

devteam1 = dev1, dev2, dev3

devteam2 = dev4, dev5, dev6

docs = doc1, doc2, doc3 

training = train1

根據需求,分別給與管理員,開發人員,文檔,培訓等不同職責的人,進行賬戶分類;

然後爲所有庫指定默認訪問規則

[/]  --對應我測試裏的:./svn 目錄

* = r

@admin = rw


允許開發人員可以完全訪問他們的項目版本庫

[proj1:/]

@devteam1 = rw

文檔編寫人員對所有的docs目錄有寫權限

[/trunk/doc]

@docs = rw


在我們項目中,root目錄下面的svn,只有devsvn一個文件夾;只需要跟它設置權限即可;

[groups]

admin = dev1

dev1=dev1

doc=doc1

[devsvn:/]

@admin = rw

@dev1 = rw

@doc = rw


【3.2】啓動和停止SVN服務

1)啓動SVN服務:

[root@singledb conf]# svnserve -d -r /root/svn

       -d表示後臺運行

       -r 指定根目錄是 /root/svn

[root@singledb conf]# ps -ef | grep svn

root      4592     1  0 18:04 ?        00:00:00 svnserve -d -r /root/svn

root      4594  3709  0 18:04 pts/1    00:00:00 grep svn

2)停止SVN服務:

ps -aux |grep svn

kill -9  4592



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章