配置CVS服務器和客戶端完全解析

配置CVS服務器和客戶端完全解析

  作者:未知  更新人:Ideal  來源:GNU  更新時間:2004.07.23  投稿信箱:tg*ddvip.com bg1.gif


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 了

發佈了0 篇原創文章 · 獲贊 0 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章