西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

首頁西西教程軟件使用 → Linux系統(tǒng)中SVN安裝、權(quán)限管理以及實(shí)現(xiàn)web同步更新

Linux系統(tǒng)中SVN安裝、權(quán)限管理以及實(shí)現(xiàn)web同步更新

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時(shí)間:2013/4/7 23:25:57字體大小:A-A+

作者:西西點(diǎn)擊:107次評論:0次標(biāo)簽: SVN

  • 類型:編程輔助大。18M語言:英文 評分:4.4
  • 標(biāo)簽:
立即下載

SVN安裝

SVN服務(wù)器有2種運(yùn)行方式:獨(dú)立服務(wù)器和借助apache運(yùn)行。

svnserve和apache相比是輕量級的,也比較簡單,svnserve包含在subversion里面,所以只要安裝了subversion就相當(dāng)于安裝了一個(gè)小型的svn服務(wù)器。它使用自己的一套協(xié)議通信。例如訪問apache時(shí)使用 http:// 前綴,而svnserve使用 svn:// 前綴.

這里介紹的是通過獨(dú)立服務(wù)器方式運(yùn)行,優(yōu)點(diǎn)是簡單小巧。如果是支持較大規(guī)模的開發(fā),還是推薦使用apache服務(wù)器方式;這里使用svnserver安裝;

1.首先為SVN單獨(dú)創(chuàng)建一個(gè)用戶,這樣可以使用操作系統(tǒng)的安全特性;

2.將svnadmin這個(gè)用戶加入到sudu組;

3.安裝:

sudo apt-get install subversion

4.創(chuàng)建測試目錄:

mkdir /home/svnadmin/test

5.創(chuàng)建版本庫:
svnadmin create /home/svnadmin/test

4. 導(dǎo)入項(xiàng)目

例如現(xiàn)在有個(gè)工程,名稱為examPro,

位置/alidata/www/examPro , 將這個(gè)工程導(dǎo)入到本地倉庫中。

svn import /alidata/www/examPro  file:///home/svnadmin/examPro  -m "import examPro"

在上一個(gè)例子里,將會拷貝目錄examPro到版本庫中;

這樣這個(gè)工程就在納入服務(wù)器的本地倉庫管理。

為了使用SVN的同步更新機(jī)制,我們需要在svn服務(wù)器環(huán)境上簽出一份最新工程拷貝(為表述方便,這里稱為A目錄)。
$ svn checkout file:///home/svnadmin/examPro
在這個(gè)拷貝里,我們一般不做修改,而是用來同步更新;當(dāng)開發(fā)機(jī)器上有任何修改,更新到SVN服務(wù)器上時(shí),能同步更新到A目錄;這樣,就能保證A目錄下的代碼是整個(gè)工程的最新代碼,而使用A目錄搭建的WEB測試環(huán)境,就是最新的WEB測試環(huán)境;

5.啟動SVN服務(wù)

$ svnserve -d -r /home/svnadmin/examPro 

描述說明:
-d 表示svnserver以“守護(hù)”進(jìn)程模式運(yùn)行
-r 指定文件系統(tǒng)的根位置(版本庫的根目錄),這樣客戶端不用輸入全路徑,就可以訪問版本庫。

6.停止svn服務(wù):

killall svnserve //停止svnserve服務(wù)

SVN權(quán)限管理

1.SVN版本庫目錄說明

db:存放具體數(shù)據(jù);

hooks:鉤子程序存放地,比如我們要實(shí)現(xiàn)同步更新的操作,在這里實(shí)現(xiàn);

conf:配置文件存放地

下面具體說說conf目錄;

conf目錄下有三個(gè)文件:

svnserve.conf、authz、以及passwd;

2.SVN服務(wù)配置文件:svnserve.conf

查看該文件,首先是匿名用戶的權(quán)限配置:

anon-access = none

auth-access = write

表示:對于匿名用戶,無訪問權(quán)限;

對于授權(quán)用戶,有寫權(quán)限;

接下來的一段用于配置使用哪種授權(quán)登錄方式;

可選的有password-db ,就是用戶名和密碼都是明文存放在同級目錄下的passwd文件中;優(yōu)點(diǎn)是高效配置簡單,缺點(diǎn)是安全性弱,明文總不是那么讓人感覺可靠;

另一種是authz-db,這種方式的用戶密碼使用了sasl加密,安全上有保證;

選擇這種方式的設(shè)置,將password-db 注釋掉:

# password-db = passwd

authz-db = authz

#指定授權(quán)所屬的域,C++的同志可將其理解為名字空間;

realm = examPro

接下來是[sasl]段,用于標(biāo)識是否進(jìn)行SASL加密處理;

use-sasl = true

min-encryption = 128

max-encryption = 256

變量 min-encryption 和 max-encryption 控制服務(wù)器所需要的加密強(qiáng)度。

3. 詳細(xì)權(quán)限配置文件authz:

這個(gè)就是授權(quán)數(shù)據(jù)庫,用于配置指定目錄對用戶的訪問權(quán)限;

首先是指定一個(gè)用戶組,按組來分配權(quán)限總是方便的,即使目前你的團(tuán)隊(duì)一個(gè)組只有一個(gè)人。在新加入成員的時(shí)候,你就能體會到按組分配權(quán)限的便利性了;

[groups]

g_fronter=cuicc,gdii

g_vip=coo

g_doc=yhh

[examPro:/]

@g_vip=rw

@g_fronter=r

@g_doc=r

[examPro:/protected/modules]

@g_vip=rw

@g_fronter=

*=

[examPro:/protected]

@g_doc=

對于以上代碼的配置的詳細(xì)說明,可以參考本文的參考文章[1]SVN權(quán)限配置,里面介紹的比較詳細(xì),這里就不多說,有疑問的請留言或mail;

SVN使用SASL加密

1.配置svnserve.conf,注釋掉password-db = passwd

并啟用sqsl:use-sasl = true

2.新建一個(gè)svn.conf文件,一般放在/usr/lib/sasl2或者/etc/sasl2,內(nèi)容為:

pwcheck_method: auxprop

auxprop_plugin: sasldb

sasldb_path: /home/svnadmin/config/sasldb

mech_list: DIGEST-MD5

其中sasldb_path 指定你打算將sasl加密的數(shù)據(jù)庫放置的位置;

注釋:pwcheck_method指明檢查的方法,這里是“auxprop ”,這個(gè)pwcheck_method還對應(yīng)了如啟動一個(gè)代理作為認(rèn)證服務(wù)等方式,而現(xiàn)在的意思就是使用本文件說的方式去檢查。然后我們指明auxprop_plugin為sasldb,也就是使用一個(gè)文件存放用戶名密碼,也就是/home/svn/svnjiami/sasldb,其它的認(rèn)證信息存放plugin還有sql和ldapdb。而mech_list指明了認(rèn)證信息傳遞機(jī)制。

svnserve 已經(jīng)在運(yùn)行,你需要重啟服務(wù),并確保它讀取了更新后的配置參數(shù)

killall svnserve //停止svnserve服務(wù)

svnserve –d –r /home/svn //啟動svnserve服務(wù)

3.創(chuàng)建用戶和密碼

使用saslpasswd2 程序

語法:saslpasswd2 –c –f /home/svn/jiami/sasldb –u [svnserve.conf里面配置的realm名字] [username]

eg:saslpasswd2 -c  -f /home/svnadmin/config/sasldb -u examPro colin

會出現(xiàn)交互界面,提示輸入兩次密碼;

附:

saslpasswd2 -d -f home/svnadmin/config/sasldb -u 用戶名//刪除用戶

sasldblistusers2 -f /home/svnadmin/config/sasldb // 查詢用戶

PS:如果訪問庫的時(shí)候出現(xiàn)以下提示 "Could not obtain the list of SASL mechanisms",原因是Linux默認(rèn)沒有安裝DIGEST-MD5,此時(shí),可用以下命令安裝更新:yum install cyrus-sasl-md5 , cyrus-sasl-md5首頁: http://asg.web.cmu.edu/sasl/, 安裝包下載地址:ftp://ftp.andrew.cmu.edu/pub/cyrus/

配置完成;

SVN上傳時(shí)同步到服務(wù)器其它目錄

svn/examPro/hooks/目錄下:

能看到一堆模版鉤子文件,我們需要的是post-commit.tmpl,

copy一份,命名為post-commit。然后修改;

1.設(shè)置語言環(huán)境:

#這行比較重要,需要根據(jù)你的服務(wù)器環(huán)境選擇正確的語言環(huán)境,否則,這個(gè)update不會工作;

#export LANG=zh_CN.UTF-8

export LANG=en_US.UTF-8

2.設(shè)置SVN更新時(shí)需要同步更新的目錄

svn update /alidata/www/examplePro --username yoursname --password yourpwd

以上這行表明,當(dāng)svn服務(wù)器版本有更新時(shí),則同步更新到/alidata/www/examPro目錄下的對應(yīng)文件;yoursname 和yourpwd是你在sasl中設(shè)置的用戶名和密碼;(這里還是涉及到了明文存放,對此,你可以分配一個(gè)用戶對svn版本庫只有全局的讀權(quán)限)

3.輸出日志,便于跟蹤查詢

echo `whoami`,$REPOS,$REV >> /home/svnadmin/examPro/hooks/svn_hook.log

每當(dāng)有更新時(shí),更新日志里就會插入一條語句,表明何時(shí)有過更新;(這個(gè)也可用來配置環(huán)境時(shí)調(diào)試,用來查詢同步是否起效)

我們的配置到這里就全部完成;

現(xiàn)在,SVN就實(shí)現(xiàn)了版本管理的功能,同時(shí),同步更新的目錄有利于測試人員集成測試;

開發(fā)人員需要保證的是,任何時(shí)候簽入到svn庫中的版本是可運(yùn)行的代碼。

    版本控制軟件
    (26)版本控制軟件
    版本控制軟件是軟件開發(fā)者的必備工具,版本控制的作用是追蹤文件的變化,簡單說,就是當(dāng)你出錯(cuò)了,可以很容易地回到?jīng)]出錯(cuò)時(shí)的狀態(tài)。大型的頻繁修改的多人編寫的軟件項(xiàng)目,需要一個(gè)版本控制系統(tǒng)簡稱,行話叫做文件數(shù)據(jù)庫,追蹤文件的變化,避免出現(xiàn)混亂。網(wǎng)上有許多版本控制軟件可供選擇,并且都有詳細(xì)的教程或手冊,這里西西給大家提供了一些比較好用的版本控制軟件下載,推薦有需要的用戶下載使用。...更多>>

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)