一 CVS伺服器的安裝:
1。查看你的作業系統上是否安裝了CVS:
#> rpm -qa|grep cvs
如果沒有安裝你可以在Redhat 第2張光碟片上找到,另外你也可以在網上下載到最新的rpm包。很容易找,其實不存在什麼linux版本。
2。建立cvs使用者組:
#> groupadd cvs
3。建立cvs組的cvsroot使用者和所屬的目錄:
#> useradd -g cvs -G cvs –d /cvsroot cvsroot
4。為cvsroot使用者添加密碼:
#> passwd cvsroot
5。改變 /cvsroot/ 的目錄屬性:
#> chmod –R 770 /cvsroot
6。改變使用者登陸身份:
#> su cvsroot
7。開始建立單個項目:
#> cd /cvsroot
#> mkdir project1
#>mkdir project2
8。開始建立倉庫:
#> cvs –d /cvsroot/project1 init
#> cvs –d /cvsroot/project2 init
#> chmod –R 770 ./project1/ ./project2/
9。建立CVS服務開機檔案,我們使用xinetd方式:
#> [Crtl]+[d] 切換到root使用者身份
#> cd /etc/xinetd.d
#> vi cvspserver
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server= /usr/bin/cvs
server_args= -f --allow-root=/home2/cvsroot/project1 --allow-root=/home2/cvsroot/project2 pserver
log_on_failure += USERID
}
註:由於xinetd的server_args長度限制,當你想運行很多的單個倉庫的時候,可以這麼做:
#> vi cvspserver
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /cvsroot/cvs.run
log_on_failure += USERID
}
編寫cvs.run指令碼
#> vi /cvsroot/cvs.run
#!/bin/bash
/usr/bin/cvs -f /
--allow-root=/cvsroot/project1 /
--allow-root=/cvsroot/project2 /
pserver
#>chmod +x /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
12。檢查cvspserver服務是否已經啟動:
#> netstat -l |grep cvspserver
應該有如下結果:
tcp 0 0 *:cvspserver *:* LISTEN
二。CVS服務的使用者管理:
上面我們已經建立了project1和project2兩個CVS倉庫,下面我們分別給兩個倉庫建立cvs使用者。
13。建立可以登陸cvs伺服器的使用者名稱和密碼:
#> su cvsroot
#> vi /cvsroot/project1/CVSROOT/passwd
trotter:*****:cvsroot
mimi:*****:cvsroot
#>vi /cvsroot/project2/CVSROOT/passwd
trotter:*****:cvsroot
gary:*****:cvsroot
這兩個檔案的意思是有trotter,mimi,gary三個cvs使用者,mimi擁有project1的使用許可權,gary擁有project2的使用許可權,trotter擁有project1和project2的使用許可權。登陸後的許可權是cvsroot許可權。
注意:這裡的cvs使用者和系統使用者是不同的。
14。*****為密碼,由以下檔案產生:
#> vi /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 /cvsroot/passwd.pl
15。如果你想產生一個密碼是“123456”,則:
#> /cvsroot/passwd.pl “123456”
斷行符號即可得到加密密碼,用其替換passwd檔案中的*****
16。Ok,cvs現在已經全部安裝完成了,如果你想讓一個使用者擁有project1的許可權,你就在/cvsroot/project1/CVSROOT/passwd中給他加入一個使用者;如果你想讓一個使用者同時具有project1和project2的許可權,你就給/cvsroot/project1/CVSROOT/passwd和/cvsroot/project2/CVSROOT/passwd裡給他加一個使用者名稱和密碼相同的使用者即可。最後,我們試用一下:
#> cvs -d :pserver:trotter@192.168.1.200:/cvsroot/project1 login
敲入命令斷行符號後提示輸入trotter的密碼,你按照自己設定的密碼輸入,如果沒有什麼錯誤資訊出現就是成功了(我的機器IP地址是192.168.1.200)