CVS 代表協作版本系統;這是一個將一組文件放在層次目錄樹中以保持同步的系統。人們可以從 CVS 服務器上更新他們的本地層次樹副本,並將修改的結果或新文件發回;或者刪除舊文件。
CVS 基於客戶端/服務器的行為使得其可容納多用戶,構成網絡也很方便。這一特性使得 CVS 成為位於不同地點的人同時處理數據文件(特別是程序的源代碼)時的首選。
所有重要的免費軟件項目都使用 CVS 作為其程序員之間的中心點,以便能夠綜合各程序員的改進和更改。這些項目包括: Gnome, KDE, The GIMP, Wine, 等等。
所以,理所當然的,MandrakeSoft 也使用 CVS 作為其自身的開發管理平台。
下面是我自己在配置CVS服務器和客戶端的一點步驟總結,希望能幫你節省時間,一步到位^-^
配置服務器的全部步驟如下:
1:我用的是Linux redhat9.0
2:建立了cvs用戶組
groupadd cvs
3.建立cvs組的cvsroot用戶和所屬的目錄
useradd -g cvs -G cvs -d/home/cvsroot cvsroot
4:為cvsroot用戶添加密碼
passwd cvsroot
5:改變/home/cvsroot的目錄屬性
chmod 775 /home/cvsroot
6:初始化cvs源碼庫,此操作生成目錄/home/cvsroot/CVSROOT,其下為一些初始化文件
cvs -d/home/cvsroot init
7:創建可以登陸cvs服務的用戶及密碼,需要創建文件passwd
vi /home/cvsroot/CVSROOT/passwd
文件內容如下:
steven:xxxxx:cvsroot
8.xxxxxx為密碼,由以下文件生成: vi /home/cvsroot/passwdgen.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}\n";
9.如果需要密碼為:some,則敲入: passwdgen.pl "some" 回車即可得到加密密碼,用其替換passwd文件中的xxxxxx
10.加入cvs服務(我的redhath9缺省就有cvs服務,所以不用加)
vi /etc/services
cvspserver 2401/tcp #pserver cvs service
cvspserver 2401/udp #pserver cvs service
11.cvs服務由inted來喚起,因此需要改動inetd提供的服務,我的redhat使用的是inetd 方式則在文件/etc/inetd.conf中加入如下的內容:cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/cvsroot pserver
我的redhat9使用的是xinetd方式,所以在xinetd.d目錄下添加需要啟動的服務:
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=/home/cvsroot pserver
log_on_failure += USERID
}
12.重新啟動inetd或者xinetd:
/etc/rc.d/init.d/xinetd restart
13.檢查cvspserver服務是否已經啟動
netstat -l grep cvspserver
結果如下:
tcp 0 0 *:cvspserver *:* LISTEN
以上結果全部通過,但是在我的客戶機(redhat9)上執行
cvs -d :pserver:
[email protected]:/home/cvsroot login
輸入密碼後,返回connection confuse信息
補:
cvs -d :pserver:
[email protected]:/home/cvsroot login
輸入密碼後,沒有收到任何消息,即表示成功
^_^ no news is a good news!!
在客戶端,設置環境變量如下:
eXPort CVS_RSH=ssh
export CVSROOT=:pserver:username@ip:/home/cvsroot
你可以
echo $CVS_RSH
ssh
echo $CVSROOT
:pserver:username@ip:/home/cvsroot
這樣你在客戶端就可以直接輸入 cvs login登陸了
其它操作都可以直接cvs command 了
export CVSROOT=:pserver:username@ip:/home/cvsroot
你可以
echo $CVS_RSH
ssh
echo $CVSROOT
:pserver:username@ip:/home/cvsroot
這樣你在客戶端就可以直接輸入 cvs login登陸了
其它操作都可以直接cvs command 了