隨筆-49  評(píng)論-67  文章-27  trackbacks-0

          1 準(zhǔn)備

          在安裝之前,首先通過運(yùn)行下面命令查看系統(tǒng)上是否已經(jīng)安裝了CVS

          root# rpm –q cvs

          這是我系統(tǒng)上輸出的內(nèi)容:

          cvs-1.11.19-8

          說明系統(tǒng)上已經(jīng)安裝了CVS,要卸載再安裝新的版本或者重新安裝。可以輸入如下命令進(jìn)行卸載:

          root# rpm –e cvs

          這時(shí)系統(tǒng)輸出如下提示:

          warning: /etc/xinetd.d/cvs saved as /etc/xinetd.d/cvs.rpmsave

          這是什么系統(tǒng)已經(jīng)將CVS卸載,并將CVS的配置文件/etc/xinetd.d/cvs保存為副本文件/etc/xinetd.d/cvs.rpmsave

          2 安裝

          作為管理員用戶登錄,運(yùn)行下面命令安裝:

          root# cd /home/soft/Fedora4_x86_64_RPMS/

          root# rpm –ivh cvs-1.11.19-8.x86_64.rpm

          系統(tǒng)的輸出如下:

          warning: cvs-1.11.19-8.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2

          Preparing...                ########################################### [100%]

             1:cvs                    ########################################### [100%]

          3 配置

          3.1 創(chuàng)建組和用戶

          首先創(chuàng)建一個(gè)cvs組和一個(gè)cvsroot用戶:

          root# groupadd cvs

          root# useradd –g cvs –p cvsroot cvsroot

          3.2 設(shè)置權(quán)限

          CVS創(chuàng)建一個(gè)根目錄來存放代碼,這里我們使用的是/home/globus/cvsroot最為我們的根目錄。然后為該目錄設(shè)置相應(yīng)的讀寫權(quán)限和所有權(quán)限。

          root# mkdir /home/globus/cvsroot

          root# -R chown cvsroot.cvs /home/globus/cvsroot

          root# -R chmod 771 /home/globus/cvsroot

          3.3 添加系統(tǒng)變量CVSROOT

          設(shè)置CVSROOT系統(tǒng)變量用來記錄CVS的根目錄,這樣可以方便以后我的使用。編輯/etc/profile文件,添加下面一行:

          export CVSROOT=/home/globus/cvsroot

          3.4 設(shè)置CVS服務(wù)端口

          查看/etc/services文件,看是否有如下兩行代碼。如果沒有需要加入。不過通常在安裝CVS的時(shí)候會(huì)自動(dòng)加入。

          cvspserver      2401/tcp              # CVS client/server operations

          cvspserver      2401/udp              # CVS client/server operations

          3.5 修改CVS配置文件

          修改/etc/xinetd.d/cvs文件,該文件是CVS的配置文件。

           

          # default: off

          # description: The CVS service can record the history of your source

          #              files. CVS stores all the versions of a file in a single

          #              file in a clever way that only stores the differences

          #              between versions.

          service cvspserver

          {

                  disable                 = yes

                  port                    = 2401

                  socket_type             = stream

                  protocol                = tcp

                  wait                    = no

                  user                    = root

                  passenv                 = PATH

                  server                  = /usr/bin/cvs

                  env                     = HOME=/var/cvs

                  server_args             = -f --allow-root=/var/cvs pserver

          #       bind                    = 127.0.0.1

          }

          修改后的結(jié)果如下,其中黑體字是表示需要修改的地方。

          # default: off

          # description: The CVS service can record the history of your source

          #              files. CVS stores all the versions of a file in a single

          #              file in a clever way that only stores the differences

          #              between versions.

          service cvspserver

          {

                  disable            = no

                  port                    = 2401

                  socket_type             = stream

                  protocol                = tcp

                  wait                    = no

                  user                    = root

                  passenv                 = PATH

                  server                  = /usr/bin/cvs

          #      env                     = HOME=/var/cvs

                  server_args    = -f --allow-root=/home/globus/cvsroot pserver

          #       bind                    = 127.0.0.1

          }

          很多網(wǎng)上的文章介紹時(shí)說需要建立/etc/xinetd.d/cvspserver文件但是經(jīng)過我的試驗(yàn)對我們安裝的CVS版本來說是不需要的。并且這樣作是不起任何作用的。

          3.6 添加CVS的用戶

          3.6.1 CVS中添加系統(tǒng)用戶(不推薦)

          接下來,需要把使用CVS的用戶添加到當(dāng)前的cvs組中。可以通過修改/etc/group文件或者使用命令的方式進(jìn)行。

          a.通過編輯文件:打開文件/etc/group,在該文件下找到類似下面的一行代碼:

          cvs:x:516:

          其中數(shù)字可能不是516,這個(gè)跟你系統(tǒng)有關(guān)。在這里,我們可以在“冒號(hào)”后面添加允許使用該CVS的系統(tǒng)用戶,多個(gè)用戶可以使用“逗號(hào)”分開。看起來類似下面的代碼:

          cvs:x:516:czb,huangqin,sqh,wangjian,wtj

          b.通過命令:

          root# usermod –G cvs czb

          注:我們不推薦使用這種方法。因?yàn)橛龅揭粋€(gè)問題:如果用戶A導(dǎo)入了一個(gè)模塊,而其它用戶無權(quán)checkout。這里可能是我們配置上出了問題,但是采用下面的方法可以解決。

          3.6.2 CVS中添加非系統(tǒng)用戶

          我們這里假設(shè)要向CVS系統(tǒng)中添加一個(gè)grid用戶,該用戶的口令是test。那么,可以通過下面的步驟進(jìn)行添加。

          1.編寫passwdgen.pl文件

          首先,編寫Perl腳本文件:

          #!/usr/bin/perl

          srand (time());

          my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))";

          my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);

          my $plaintext = shift;

          my $crypttext = crypt ($plaintext, $salt);

          print "${crypttext} ";

          該文件用來生成一個(gè)經(jīng)過加密的口令。

          為了方便地讓CVS系統(tǒng)中的所有用戶生成自己的口令,建議為該文件添加執(zhí)行權(quán)限。并且可以將該文件放在大家有權(quán)限訪問的目錄下。

          2.生成用戶口令

          然后,為使用CVS系統(tǒng)的用戶生成加密的口令。處于安全的考慮,我們可以讓CVS用戶通過上面的腳本文件生成自己的加密口令。并將這個(gè)加密口令發(fā)送給管理員。

          運(yùn)行下面的命令,為grid戶生成加密的口令:

          user$ ./passwdgen.pl test

          IIjgs2WRpImsU

          這時(shí),用戶可以將生成的加密口令“IIjgs2WRpImsU”發(fā)送給CVS管理員。

          3.編寫passwd文件

          該文件用來存放CVS系統(tǒng)的用戶的信息,位于$CVSROOT/CVSROOT目錄下面。它的格式如下

          username:userpwd:sysuser

          l           username:用來訪問CVS系統(tǒng)的用戶名

          l           userpwd:收到的用戶的加密口令

          l           sysuser:操作系統(tǒng)中存在的有權(quán)訪問$CVSROOT目錄的用戶,這里是cvsroot

          我們得到的結(jié)果如下:

          grid:IIjgs2WrpImsU:cvsroot

          此時(shí),我們就完成了向系統(tǒng)中添加grid用戶的過程,并且該用戶的口令是test

          3.7 添加模塊

          通過編輯$CVSROOT/CVSROOT目錄下面的modules文件為CVS建立模塊。

          CVS系統(tǒng)中,存在三種形式的模塊:alias模塊、regular模塊和ampersand模塊。它們的不同在于它們將repository中的文件映射到工作目錄(本地)中文件的方式不一樣。

          l           alias模塊

          這是最簡單的一種,其格式如下:

          mname –a aliases...

          其中,mname指的是模塊名,而aliases指的是其它的模塊名或者路徑名。

          l           regular模塊

          該模塊的書寫格式如下:

          mname [options] dir [files...]

          該模塊定義所有位于dir目錄下的文件到mname代表的模塊中。其中,dir是參照$CVSROOT的一個(gè)相對路徑。此外,如果后面跟上具體的files,則表示將dir目錄下的files文件加入到模塊中。

          l           ampersand模塊

          該模塊的書寫格式如下:

          mname [options] &module...

          這樣可以引用其它的module

          這里,我們使用最為簡單的alias模塊,定義如下:

          grid grid

          這樣,我們就可以在Wincvs中看到grid模塊了。

          3.8 重啟CVS

          最后,重新啟動(dòng)CVS服務(wù),確保剛才的修改被執(zhí)行。

          root# /etc/rc.d/init.d/xinetd restart

          如果系統(tǒng)輸入以下信息,表示服務(wù)重新啟動(dòng)了。

          Stopping xinetd:                                           [  OK  ]

          Starting xinetd:                                           [  OK  ]

          4 測試

          接下來我們可以在Windows下用wincvs客戶端進(jìn)行登錄進(jìn)行測試。

          注:這里面需要注意的是,設(shè)置wincvsCVSROOT時(shí)應(yīng)該是這樣:

          wtj@202.115.30.191:/home/globus/cvsroot

          /home/globus/cvsroot后面沒有“/”。

          posted on 2005-10-16 16:34 思考 閱讀(3518) 評(píng)論(0)  編輯  收藏 所屬分類: 其他技術(shù)文章Linux技術(shù)
          主站蜘蛛池模板: 乌鲁木齐县| 昭通市| 凤冈县| 保山市| 新宁县| 中阳县| 石景山区| 宾川县| 龙川县| 西贡区| 鱼台县| 酒泉市| 石渠县| 泸西县| 蒲城县| 柏乡县| 沙河市| 历史| 育儿| 富民县| 建阳市| 鄂尔多斯市| 安化县| 海安县| 土默特右旗| 治县。| 嵊州市| 嘉兴市| 博乐市| 汕尾市| 调兵山市| 平定县| 资源县| 商都县| 双桥区| 绥德县| 黄龙县| 读书| 化德县| 合肥市| 渝北区|