• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    LINUX作CVS服務器之2

    發布: 2007-6-21 12:06 | 作者:   | 來源:   | 查看: 21次 | 進入軟件測試論壇討論

    領測軟件測試網

       
      軟件庫的備份與移動

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

    當你想用一備份的軟庫,恢復原來的庫時,如果原庫在你備份后作過改動.CVS將報錯.你必須按以下的步驟來

    ? 得到一個新的工作目錄

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

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

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

    4.2 CVS 的遠程用戶管理

    作為一個CVS 服務器,應該滿足兩點.首先保證軟件庫有足夠大的空間. 其次保證有不小于32M 的內存, 服務器為每一個連接它的用戶產生兩個進程,在子進程上的花銷較小.但如果網絡帶寬不夠,在父進程上的花銷是巨大的.

    另外一個大的花銷是diff 文件,當源文件很大時,對他進行驗證或檢測的花銷也很大.

    遠程用戶的登錄認證方式

    以rsh為例行遠程登錄

    Cvs 服務器使用rsh 允許用戶連接時應該配置.rshosts ,假設在遠程主機tom.exsample.com 上的用戶tom 需要連接到 funame.simple.com 這個cvs 服務器上工作.應該編輯服務器端的bach 目錄的.rshosts ,在其中加入

    Tom.exsample.com tom

    客戶端可運行 rsh –l bach funame.simple.com ‘ echo @PATH

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

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

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

    另外還可以用- T 選項來定義緩沖目錄.

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

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

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

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

    :etx: 定義了是遠程用戶,其余同上.

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

    cvspsever 2401/tcp

    重新啟動ineted 使其讀取初始化文件即可.

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

    在服務器端的$CVSROOT/CVSROOT 下可以有一個passwd 文件(可以用環境變量CVS_PASSFILE 來定義.)來記錄cvs的用戶信息.他采用的是和linux etc/passwd 同樣的組織形式 .同樣,它的passwold 也是經過linux標準加密方式的.下面是一個 passwd 的內容

    anyone:

    tom:xyzkue

    mary:yuio:pubcvs

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

    第三行的意思是,當mary 登錄時需要敲入密碼.進入和系統用戶相同的軟件庫.這樣作的目的是因為.cvs 將紀錄它的用戶在軟件庫中的所有的動作.定義和系統使用者不同的身份.使用cvs.

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

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

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

    同時,可以使用cvs loginout 將所有的環境變量撤銷.

    使用GASSAPI 接入

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

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

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

    使用kerberos 直接連接

    最簡單的使用rsh 的方法如上說述.這種方法的主要特點是所有數據都通過一個額外的程序.非常費時.如果安裝了kerberos.可以直接用TCP 連接.

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

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

    此時的登錄命令應是

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

    用fork連接

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

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

    和用:etx:一樣.缺省的主機名是cvs

    三、cvs服務器架與應用實例

    1.服務器安裝配置

    假設目前有一工作項目,需要用cvs 來管理員碼.這個開發組為內部3人,器ip 分別是:192.168..1.2(用戶名t1), 192.168.1.3)(用戶名時t3),193.168.1.3(用戶名t3),遠程用戶一人,其主機是 tom.example.com.(用戶名是tom)

    如果你已經安裝了cvs,建立一cvs 主機為 cvs.exam.org的服務器非常簡單.步驟大致如下:

    1.1 以root 身份登錄.建立軟件庫(repository)

    $export CVSROOT=/cvsroot

    $mkdir /cvsroot

    $cd /cvsroot

    $cvs init

    1.2設置執行權限

    $chmod /cvsroot/CVSROOT 744 (/ccvsroo/CVSOOT設置為只讀)

    $chmod /cvsroot 764 組號 (/cvsroot 對開發組可讀寫)

    修改文件以利于其他人使用,因為開發組人員是系統用戶,所以在這里用系統的用戶名和password是比較好的.先編輯.rhosts件如下:

    tom.example.com. tom

    修改服務器上的 /etc/inetd.conf文件,加入如下的句子

    2401 stream tcp nowait root /usr/local/bin/cvs cvs -f --allow-root=/usr/cvsroot pserver

    這樣一來,一個基本的cvs 服務器就建好了.

    我們這里只是提供了一個基本的應用.cvs 真正的細節應用非常復雜.我們這里只進行一些拋磚引玉的介紹.與興趣的朋友可以細讀它的安裝文檔.

    2.應用實例

    (使用主機上的cvs 系統,可以telnet 到主機上,然后使用,和本機使用沒什么差別,所以本文一直不提)

    假設上例中的tom 想使用 cvs 主機上的cvs系統以和大家協作開發.首先它營配置自己的一些環境變量.首先編輯/etc/services'加入:

    cvspserver 2401/tcp

    然后在.profile 文件中加入如下代碼

    CVSROOT=:etx:psever:tom@cvs.exam.org:/cvsroot

    Export CVSROOT

    這樣他便可以使用$cvs login 來登錄了.下面我們便以tom 的具體使用為例子講一下cvs 的應用.和其他linux 命令一樣.cvs 也有大量的參數.我么將在下一節做一個列表.

    Tom 在/usr/test 目錄下有如下文件

    Ecample.c exampl2.c tes1.c test2.c utimel.c tty.c

    如果想在軟件庫建立自己的目錄

    $cd /usr/test

    ~test$ cvs import –m “tom first creation” tomdir tom tomwork

    N tomdit/example.c

    N tomdit/exampl2.c

    N tomdir/test1.c

    N tomdir/test2.c

    N tomdir/utmel.c

    N tomdit/tty.c

    No conflicts creat by this import
    命令說明 import 提交命令 –m 后加描述.tom 發行商 tomwork 是發行標號.如果提示CVSROOT 不對,可以用- -d 加CVSROOT

    注:一切cvs 的命令 可以用 cvs command –H 來獲得幫助. 這時服務器端的/cvs 目錄下多了一個 tomdir 子目錄.內容下:

    example.c,v exampl2.c,v test1.c,v test2.c,v tty.c,v utimel.c,v

    至此首次提交完成.

    這樣便是一不小心刪除了test 目錄也不用擔心.使用如下命令,可從軟件庫中檢出源文件的備份

    $/cd usr

    `usr$/cvs checkout test tomdir-r 1.1

    U test/exsample.c

    U test/exampl1.c

    U test/test1.c

    U test/test2.c

    U test/tty.c

    U test/ulnem.c

    cvs checkout命令缺省是得到最新版本.我們也可以得到某一個老版本,此命令是將tomdir的1.1版的代碼取出. 恢復后test 目錄增加了一個CVS 目錄是用來管理的,以便在你下一次提交或修改的時候,和服務器上的管理文件相接口,保證版本好.這個例子非常小,現實中工程非?赡芪募浅6,這樣可以先恢復 CVSROOT 的模塊

    ~usr/$cvs checkout CVSROOT/mouldes

    ~/usr/$vi CVSROOT/mouldes 編輯模塊名,如我們在文件尾加上

    src project/src

    print project/src/print

    cvs commit

    以后我們就可以用cvs checkout print來代替

    cvs checkout project/src/print

    編輯完后即可以提交文件

    ~usr/$cvs commit –m “edit of mouldes name” CVSROOT/mould除了可以恢復整個目錄后也可以恢復單個文件或模塊

    ~usr/test/$cvs checkout –m “newer file “ tty.c

    在恢復了文件以后, tom 便可以使用各種編輯器,對源文件進行修改,修改完成以后就可以提交它的工作成果了

    ~/usr/cvs commit test tomdir.

    這樣,tom 便完成了一次源文件的升級.其他的同理可得

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>