您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > cvs
教你用Linux作CVS服務(wù)器
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/1/28 13:41:26 ] 推薦標(biāo)簽:

軟件庫的備份與移動(dòng)

備份軟件庫中的文件和備份其他文件并沒有不同,但你需要一個(gè)備份工具開鎖住CVS.這樣,你必須先注冊一個(gè)可以讀取軟件庫的用戶,打開CVS軟件庫, 你需要編輯`#cvs.rfl’文件.

當(dāng)你想用一備份的軟庫,恢復(fù)原來的庫時(shí),如果原庫在你備份后作過改動(dòng).CVS將報(bào)錯(cuò).你必須按以下的步驟來

? 得到一個(gè)新的工作目錄

? 拷貝上一次提交失敗的文件(,當(dāng)然不能拷貝CVS的目錄文件)

? 在新目錄下工作,使用cvs update 或cvs diff 等命令指出那些作過改動(dòng),在使用cvs commit 將改動(dòng)保存到軟件庫.

你如果想移動(dòng)一個(gè)軟件庫到其他地方也很簡單.簡單的方法是將向要移動(dòng)的目錄創(chuàng)到一個(gè)新的目錄中去.如果你想重新使用原來的目錄的話,只能手工修改`CVS/Repository' 和 `CVS/Root',除非你精于此道,否則不建議使用.

4.2 CVS 的遠(yuǎn)程用戶管理

作為一個(gè)CVS 服務(wù)器,應(yīng)該滿足兩點(diǎn).首先保證軟件庫有足夠大的空間. 其次保證有不小于32M 的內(nèi)存, 服務(wù)器為每一個(gè)連接它的用戶產(chǎn)生兩個(gè)進(jìn)程,在子進(jìn)程上的花銷較小.但如果網(wǎng)絡(luò)帶寬不夠,在父進(jìn)程上的花銷是巨大的.

另外一個(gè)大的花銷是diff 文件,當(dāng)源文件很大時(shí),對他進(jìn)行驗(yàn)證或檢測的花銷也很大.

遠(yuǎn)程用戶的登錄認(rèn)證方式

以rsh為例行遠(yuǎn)程登錄

Cvs 服務(wù)器使用rsh 允許用戶連接時(shí)應(yīng)該配置.rshosts ,假設(shè)在遠(yuǎn)程主機(jī)tom.exsample.com 上的用戶tom 需要連接到 funame.simple.com 這個(gè)cvs 服務(wù)器上工作.應(yīng)該編輯服務(wù)器端的bach 目錄的.rshosts ,在其中加入

Tom.exsample.com tom

客戶端可運(yùn)行 rsh –l bach funame.simple.com ‘ echo @PATH

以確定自己可以連接到CVS 服務(wù)器上,并且客戶應(yīng)將顯示的這個(gè)路徑寫入 .bashrc 或 cshrc (而不是.logiin 或.profile.)

除此之外,客戶端還可以定義環(huán)境變量CVS_SEVER.來定義主機(jī)的位置. 在服務(wù)器端,修改/etc/.neted.conf文件,來告訴服務(wù)器,在獲得特定端口的連接時(shí),運(yùn)行cvssever .這個(gè)端口號缺省值是:2041.當(dāng)然為了不再每次使用時(shí)都要進(jìn)行設(shè)置,可以在用戶端通過定義環(huán)境變量 CVS_AUTH_PORT來使用.

如客戶端的ineted 允許使用原始調(diào)用,只需在/etc/ineted.conf 文件中添加下面的句子即可 2401 stream tcp nowait root/usr/local/bin/cvs cvs –f –allow –root=/cvsroot pserver

另外還可以用- T 選項(xiàng)來定義緩沖目錄.

—allow – root 定義了可供用戶使用的軟件庫,如果服務(wù)器上有更多的軟件庫需要重新使用這個(gè)句子. 另外,內(nèi)部用戶可以這樣定義環(huán)境變量CVSROOT

:pseve:usr@funam.simple.com:/cvsroot

其中 usr是用戶名(linux系統(tǒng)的)funam.simple.com 是cvs 服務(wù)器,并假設(shè) /cvsroot是軟件庫的目錄名.遠(yuǎn)程用戶可用下面的形式:

:etx:psever:usr@funam.silple.com:/cvsroot

:etx: 定義了是遠(yuǎn)程用戶,其余同上.

如果客戶的ineted 采用一般調(diào)用,只需在 /etc/seveice 中加入下面這一句:

cvspsever 2401/tcp

重新啟動(dòng)ineted 使其讀取初始化文件即可.

CVS 對于用戶的管理.在缺省狀態(tài)下(如用telnet登陸),是和linux 系統(tǒng)使用同樣的用戶名與密碼.即:只要你登陸linux 系統(tǒng),擁有 $CVSROOT的只讀權(quán)限..當(dāng)然,對某一軟件的開發(fā)者來說必須擁有相對應(yīng)目錄的讀寫權(quán)限,才能完成源代碼的升級等工作.因此,CVS 也提供了自己的用戶認(rèn)證體系以更加方便的管理用戶.

在服務(wù)器端的$CVSROOT/CVSROOT 下可以有一個(gè)passwd 文件(可以用環(huán)境變量CVS_PASSFILE 來定義.)來記錄cvs的用戶信息.他采用的是和linux etc/passwd 同樣的組織形式 .同樣,它的passwold 也是經(jīng)過linux標(biāo)準(zhǔn)加密方式的.下面是一個(gè) passwd 的內(nèi)容

anyone:

tom:xyzkue

mary:yuio:pubcvs

第一行的意思是,當(dāng)用anyone 的身份登錄時(shí),不需要任何密碼.即使打入空串也可以.當(dāng)然在這種方式下你得到的可能只是只讀權(quán).第二行的意思是, tom 登錄時(shí)需要敲入passwold.該passworld 加密后是xyzkue.以這種方式登錄后.一般可以獲得較高的權(quán)限.

第三行的意思是,當(dāng)mary 登錄時(shí)需要敲入密碼.進(jìn)入和系統(tǒng)用戶相同的軟件庫.這樣作的目的是因?yàn)?cvs 將紀(jì)錄它的用戶在軟件庫中的所有的動(dòng)作.定義和系統(tǒng)使用者不同的身份.使用cvs.

例如;使用用戶tom可以用以下的方式登錄:

$cvs –d :etx:tom@funam.simple.com:/cvsroot login

(如果tom 這個(gè)用戶名在遠(yuǎn)端可內(nèi)部是相同的,則tom@ 還可以省略)

同時(shí),可以使用cvs loginout 將所有的環(huán)境變量撤銷.

使用GASSAPI 接入

CVS 還支持使用 GASSAPI 的TCP 直接接入.在使用安轉(zhuǎn)之前,需要將CVS 重新編譯以獲得 GASSAPI 的支持.運(yùn)用 –with –gassapi 來連接,或者用-a 選向來連接.使用GASSAPI 的認(rèn)證等方式余地一種方式相同.

但在登錄時(shí).需要重新定義$CVSROOT 如:

$cvs –d :gsever:usr@cvssever.com:/cvsroot login

使用kerberos 直接連接

簡單的使用rsh 的方法如上說述.這種方法的主要特點(diǎn)是所有數(shù)據(jù)都通過一個(gè)額外的程序.非常費(fèi)時(shí).如果安裝了kerberos.可以直接用TCP 連接.

同樣CVS 需要重新編譯以獲得keberos的支持可用--with-krb4 來連接.這樣傳輸?shù)臄?shù)據(jù)是沒有加密的.如果要獲得安全.必須在服務(wù)端和客戶端都用`--enable-encryption來連接.此時(shí),你應(yīng)用通用的變量-x來要求加密.

在服務(wù)端需要編輯inetd.conf 來運(yùn)行cvs kserver .客戶端的缺省端口號是1999,如果想用其他端口號.需在用戶端定義CVS_CLIENT_PORT

此時(shí)的登錄命令應(yīng)是

cvs -d :kserver:faun.example.org:/usr/local/cvsroot checkout foo

用fork連接

用這方式,可以通過遠(yuǎn)程協(xié)議連接本地硬盤的軟件庫.換句話說,他能和:local:有相同的功能用這種方式的登錄命令是

cvs -d :fork:/usr/local/cvsroot login

和用:etx:一樣.缺省的主機(jī)名是cvs

上一頁12345678下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd