一、CVS伺服器的安裝:
1、查看你的作業系統上是否安裝了CVS:
#>; rpm -qa | grep cvs
如果沒有安裝你可以在Redhat 第2張光碟片上找到,另外你也可以在網上下載到最新的rpm包。很容易找,其實不存在什麼linux版本。
2、建立cvs使用者組:
#>; groupadd cvs
3、建立cvs組的cvsroot使用者和所屬的目錄:
#>; useradd -g cvs -G cvs –d /home/cvsroot cvsroot
4、為cvsroot使用者添加密碼:
#>; passwd cvsroot
5、改變 /home/cvsroot 的目錄屬性:
#>; chmod –R 770 /cvsroot
6、改變使用者登陸身份:
#>; su cvsroot
7、開始建立單個項目:
#>; cd /home/cvsroot
8、開始建立倉庫:
#>; cvs –d /home/cvsroot/project1 init
#>; cvs –d /home/cvsroot/project2 init
9、建立CVS服務開機檔案,我們使用xinetd方式:
#>; [Crtl]+[d] 切換到root使用者身份
#>; cd /etc/xinetd.d
#>; vi cvspserver
service cvspserver
{
disable = no
flags = REUSE
port = 2401
socket_type = stream
protocol = tcp
instances = 120
wait = no
user = root
passenv = PATH
server = /cvsroot/cvs.sh
env = HOME=/cvsroot
# server_args = -f --allow-root=/cvsroot/client/src --allow-root=/cvsroot/client/bin --allow-root=/cvsroot/client/wjqbook pserver
log_on_failure += USERID
# bind = 127.0.0.1
在/cvsroot/目錄下的cvs.sh檔案內容如下#!/bin/bash
/usr/bin/cvs -f --allow-root=/cvsroot/client/src --allow-root=/cvsroot/client/bin --allow-root=/cvsroot/client/doc --allow-root=/cvsroot/client/res --allow-root=/cvsroot/client/lib --allow-root=/cvsroot/client/obj --allow-root=/cvsroot/client/other --allow-root=/cvsroot/client/yanghaichunbook --allow-root=/cvsroot/client/zhujinlinbook --allow-root=/cvsroot/client/yangqubook --allow-root=/cvsroot/client/chenmengbook --allow-root=/cvsroot/client/limengjiebook --allow-root=/cvsroot/client/liyaobook --allow-root=/cvsroot/client/wangxiguobook --allow-root=/cvsroot/client/weijianquanbook --allow-root=/cvsroot/client/zhangshuchengbook --allow-root=/cvsroot/art/role --allow-root=/cvsroot/art/scene --allow-root=/cvsroot/art/animation --allow-root=/cvsroot/art/initialpic --allow-root=/cvsroot/art/handsetgame --allow-root=/cvsroot/server/mbssrc --allow-root=/cvsroot/server/mbsdoc --allow-root=/cvsroot/server/mbsdbsrc --allow-root=/cvsroot/server/mbslib --allow-root=/cvsroot/server/mbsbin --allow-root=/cvsroot/server/kartssrc --allow-root=/cvsroot/server/kartsdbsrc --allow-root=/cvsroot/server/kartsdoc --allow-root=/cvsroot/server/kartslib --allow-root=/cvsroot/server/kartsbin --allow-root=/cvsroot/server/zhangshanbook --allow-root=/cvsroot/server/zhengjunbook --allow-root=/cvsroot/server/liqinghuibook --allow-root=/cvsroot/server/wenliangbook --allow-root=/cvsroot/server/yangcaigaobook --allow-root=/cvsroot/server/weiluebook --allow-root=/cvsroot/server/other --allow-root=/cvsroot/server/sharebook --allow-root=/cvsroot/server/jiangweibook --allow-root=/cvsroot/server/kartsclient --allow-root=/cvsroot/server/zhangshuchengbook --allow-root=/cvsroot/server/zhangwenxinbook --allow-root=/cvsroot/server/caojianpingbook --allow-root=/cvsroot/design/mmorpggame --allow-root=/cvsroot/design/racegame --allow-root=/cvsroot/design/handsetgame --allow-root=/cvsroot/design/linwanlibook --allow-root=/cvsroot/design/liangyuyebook --allow-root=/cvsroot/design/jiangziyubook --allow-root=/cvsroot/design/zengjiabook --allow-root=/cvsroot/design/public --allow-root=/cvsroot/rpg/src --allow-root=/cvsroot/rpg/doc --allow-root=/cvsroot/rpg/res --allow-root=/cvsroot/rpg/bin --allow-root=/cvsroot/rpg/lib --allow-root=/cvsroot/rpg/obj --allow-root=/cvsroot/rpg/other --allow-root=/cvsroot/rpg/yangjingbook --allow-root=/cvsroot/rpg/zhangwenxinbook --allow-root=/cvsroot/rpg/chenmengbook --allow-root=/cvsroot/rpg/limengjiebook --allow-root=/cvsroot/rpg/wangxiguobook --allow-root=/cvsroot/engine/include --allow-root=/cvsroot/engine/library --allow-root=/cvsroot/engine/enginebook --allow-root=/cvsroot/engine/game --allow-root=/cvsroot/engine/chendaweibook --allow-root=/cvsroot/engine/chenyibook --allow-root=/cvsroot/engine/xiangshushubook --allow-root=/cvsroot/engine/tianzhaohuibook --allow-root=/cvsroot/engine/source pserver
註:由於xinetd的server_args長度限制,當你想運行很多的單個倉庫的時候,可以這麼做:
#>; vi cvspserver
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /home/cvsroot/cvs.run
log_on_failure += USERID
}
編寫cvs.run指令碼
#>; vi /cvsroot/cvs.run
#!/bin/bash
/usr/bin/cvs -f --allow-root=/home/cvsroot/project1 --allow-root=/home/cvsroot/project2 pserver
#>; chmod +x /home/cvsroot/cvs.run
10、加入cvs服務:
#>;vi /etc/services
cvspserver 2401/tcp #pserver cvs service
cvspserver 2401/udp #pserver cvs service
11、啟動cvs服務:
#>; /etc/init.d/xinetd restart
注意:如果這裡找不到相應的啟動命令,一定是xinetd沒有安裝,去你的linux安裝盤找一下安裝好這個檔案就可以運行這個命令了,我的就是沒有安裝,我在第3張盤找到了這個檔案,然後安裝好了這個檔案就可以運行了.rpm 檔案名稱 就可以進行安裝了
12、檢查cvspserver服務是否已經啟動:
#>; netstat -l |grep cvspserver
應該有如下結果:
tcp 0 0 *:cvspserver *:* LISTEN
二、CVS服務的使用者管理:
上面我們已經建立了project1和project2兩個CVS倉庫,下面我們分別給兩個倉庫建立cvs使用者。
13、建立可以登陸cvs伺服器的使用者名稱和密碼:
#>; su cvsroot
#>; vi /home/cvsroot/project1/CVSROOT/passwd
trotter:*****:cvsroot
mimi:*****:cvsroot
#>;vi /home/cvsroot/project2/CVSROOT/passwd
trotter:*****:cvsroot
gary:*****:cvsroot
(注意:*****一定要是加密的密碼才行,不是加密的密碼,系統不識別,所以一定要做下面的加密檔案,對密碼加密)
這兩個檔案的意思是有trotter,mimi,gary三個cvs使用者,mimi擁有project1的使用許可權,gary擁有project2的使用許可權,trotter擁有
project1和project2的使用許可權。登陸後的許可權是cvsroot許可權。
注意:這裡的cvs使用者和系統使用者是不同的。
14、*****為密碼,由以下檔案產生:
#>; vi /home/cvsroot/passwd.pl
#!/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}
////";
#>;chmod a+x /home/cvsroot/passwd.pl
15、如果你想產生一個密碼是“123456”,則:
#>; /home/cvsroot/passwd.pl ////"123456////"
斷行符號即可得到加密密碼,用其替換passwd檔案中的*****
16、Ok,cvs現在已經全部安裝完成了,如果你想讓一個使用者擁有project1的許可權,你就在/home/cvsroot/project1/CVSROOT/passwd中給
他加入一個使用者;如果你想讓一個使用者同時具有project1和project2的許可權,你就給/home/cvsroot/project1/CVSROOT/passwd 和
/home/cvsroot/project2/CVSROOT/passwd裡給他加一個使用者名稱和密碼相同的使用者即可。最後,我們試用一下:
#>; cvs -d :pserver:trotter@172.30.5.107:/home/cvsroot/project1 login
(注意:/home/cvsroot/project1,是你所建好的庫路徑,一定要和cvspserver檔案中的server_args下的路徑一樣,不然會出錯)
敲入命令斷行符號後提示輸入trotter的密碼,你按照自己設定的密碼輸入,如果沒有什麼錯誤資訊出現就是成功了(我的機器IP地址是172.30.5.107)
linux下的測試就用這個,windows下的測試我下了一個叫wincvs的工具,大家也可以去下下,挺好用的