隨筆-49  評論-67  文章-27  trackbacks-0

          1 準備

          在安裝之前,首先通過運行下面命令查看系統上是否已經安裝了CVS

          root# rpm –q cvs

          這是我系統上輸出的內容:

          cvs-1.11.19-8

          說明系統上已經安裝了CVS,要卸載再安裝新的版本或者重新安裝。可以輸入如下命令進行卸載:

          root# rpm –e cvs

          這時系統輸出如下提示:

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

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

          2 安裝

          作為管理員用戶登錄,運行下面命令安裝:

          root# cd /home/soft/Fedora4_x86_64_RPMS/

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

          系統的輸出如下:

          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 創建組和用戶

          首先創建一個cvs組和一個cvsroot用戶:

          root# groupadd cvs

          root# useradd –g cvs –p cvsroot cvsroot

          3.2 設置權限

          CVS創建一個根目錄來存放代碼,這里我們使用的是/home/globus/cvsroot最為我們的根目錄。然后為該目錄設置相應的讀寫權限和所有權限。

          root# mkdir /home/globus/cvsroot

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

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

          3.3 添加系統變量CVSROOT

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

          export CVSROOT=/home/globus/cvsroot

          3.4 設置CVS服務端口

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

          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

          }

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

          # 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

          }

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

          3.6 添加CVS的用戶

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

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

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

          cvs:x:516:

          其中數字可能不是516,這個跟你系統有關。在這里,我們可以在“冒號”后面添加允許使用該CVS的系統用戶,多個用戶可以使用“逗號”分開。看起來類似下面的代碼:

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

          b.通過命令:

          root# usermod –G cvs czb

          注:我們不推薦使用這種方法。因為遇到一個問題:如果用戶A導入了一個模塊,而其它用戶無權checkout。這里可能是我們配置上出了問題,但是采用下面的方法可以解決。

          3.6.2 CVS中添加非系統用戶

          我們這里假設要向CVS系統中添加一個grid用戶,該用戶的口令是test。那么,可以通過下面的步驟進行添加。

          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} ";

          該文件用來生成一個經過加密的口令。

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

          2.生成用戶口令

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

          運行下面的命令,為grid戶生成加密的口令:

          user$ ./passwdgen.pl test

          IIjgs2WRpImsU

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

          3.編寫passwd文件

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

          username:userpwd:sysuser

          l           username:用來訪問CVS系統的用戶名

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

          l           sysuser:操作系統中存在的有權訪問$CVSROOT目錄的用戶,這里是cvsroot

          我們得到的結果如下:

          grid:IIjgs2WrpImsU:cvsroot

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

          3.7 添加模塊

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

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

          l           alias模塊

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

          mname –a aliases...

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

          l           regular模塊

          該模塊的書寫格式如下:

          mname [options] dir [files...]

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

          l           ampersand模塊

          該模塊的書寫格式如下:

          mname [options] &module...

          這樣可以引用其它的module

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

          grid grid

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

          3.8 重啟CVS

          最后,重新啟動CVS服務,確保剛才的修改被執行。

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

          如果系統輸入以下信息,表示服務重新啟動了。

          Stopping xinetd:                                           [  OK  ]

          Starting xinetd:                                           [  OK  ]

          4 測試

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

          注:這里面需要注意的是,設置wincvsCVSROOT時應該是這樣:

          wtj@202.115.30.191:/home/globus/cvsroot

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

          posted on 2005-10-16 16:34 思考 閱讀(3518) 評論(0)  編輯  收藏 所屬分類: 其他技術文章Linux技術
          主站蜘蛛池模板: 读书| 合肥市| 宝兴县| 军事| 潞西市| 如皋市| 万州区| 嘉祥县| 安塞县| 遂川县| 新泰市| 岗巴县| 乡宁县| 九台市| 绥化市| 武城县| 宁津县| 靖江市| 含山县| 清流县| 大余县| 文安县| 旅游| 华亭县| 基隆市| 娄底市| 大连市| 甘孜县| 法库县| 德庆县| 乌兰察布市| 北宁市| 平邑县| 三台县| 东光县| 杨浦区| 望江县| 兴国县| 衡东县| 达州市| 固原市|