關(guān)于CVS,以前已經(jīng)寫過(guò)一篇了。這是《開源世界》2004年3期上的文章,從作者的名字看,有一個(gè)應(yīng)是我的同學(xué)。
	一、 Pserver方式
	1、 設(shè)置服務(wù)器
	0) 建立使用CVS的用戶或組
	#su -
	#groupadd linux
	#useradd –g linux sun
	#useradd –g linux zhang
	1) 建立CVS源代碼庫(kù)目錄
	#cd /usr/local
	#mkdir cvsroot
	#chmod 774 cvsroot
	#chown sun:linux
	2) 檢查/etc/services文件,以確保有以下兩條:
	cvspserver 2401/tcp
	cvspserver 2401/udp
	3) 檢查/etc/x.netd.d/目錄,以確保cvspserver文件存在,其內(nèi)容如下:
	service cvspserver
	{
	disable=no
	socket_type=stream
	wait=no
	user=root
	server=/usr/bin/cvs
	server_args=-f –allow-root /usr/local/cvsroot pserver
	log_on_suclearcase/" target="_blank" >ccess+= USERID
	log_on_failure+=USERID
	}
	4) 通過(guò)重啟xinetd來(lái)啟動(dòng)cvs服務(wù)器
	#/etc/rc.d/init.d/xinetd restart
	5) 檢查防火墻,使其放開2401端口
	6) 并用下行命令檢查2401端口是否已被正確綁定
	#netstat –an|grep 2401
	7) 設(shè)置環(huán)境變量CVSROOT
	#CVSROOT=/usr/local/cvsroot; export CVSROOT
	可將此放入/etc/profile文件中,以在系統(tǒng)啟動(dòng)時(shí)自動(dòng)設(shè)置此變量
	8) 初始化CVS
	#cvs init
	此時(shí),$CVSROOT目錄下會(huì)出現(xiàn)名為CVSROOT的目錄
	2、 客戶端設(shè)置
	#cvs –d “:pserver:sun@192.168.0.252:/usr/local/cvsroot” login
	#[輸入密碼]
	#cvs import //第一次使用時(shí)
	#cvs checkout
	#cvs logout
	3、 高級(jí)設(shè)置
	1) 將CVS帳號(hào)和系統(tǒng)帳號(hào)分開使用
	編輯/usr/local/cvsroot/CVSROOT/passwd文件(此文件安裝時(shí)并不存在)
	每行格式如下:CVS帳號(hào):密碼:系統(tǒng)帳號(hào)
	例子:cvsuser:xcgaer5321dsa:sun
	cvsuser登錄cvs后,會(huì)影射到系統(tǒng)用戶sun.
	2) 編輯/usr/local/cvsroot/CVSROOT/readers
	每行一個(gè)賬號(hào),只讀權(quán)限
	3) 編輯/usr/local/cvsroot/CVSROOT/writers
	每行一個(gè)賬號(hào),讀寫權(quán)限
	
	二、 SSH方式
	1、 安裝OpenSSH
	1) 檢查OpenSSH是否安裝
	#rpm –qa |grep ssh
	2) 檢查sshd是否運(yùn)行
	#ps –aef|grep ssh
	3) 啟動(dòng)sshd
	#/etc/rc.d/init.d/sshd start
	2、 基于傳統(tǒng)口令認(rèn)證
	#ssh –l [在遠(yuǎn)程服務(wù)器上的帳號(hào)] [遠(yuǎn)程服務(wù)器的主機(jī)名或ip地址]
	#[yes]
	#[輸入密碼]
	3、 基于密鑰認(rèn)證
	1) 配置遠(yuǎn)程服務(wù)器
	編輯/etc/shh/sshd_config文件
	將PasswordAuthentication yes改為PasswordAuthentication no
	2) 配置客戶端
	3) 在客戶端生成密鑰
	#cd ~
	#ssh-keygen –t rsa (dsa)
	#~/.ssh/id_rsa.pubid文件即是公鑰
	4) 發(fā)布公鑰
	將上步生成的id_rsa.pubid文件復(fù)制到遠(yuǎn)程服務(wù)器的sun用戶目錄下
	$cd .ssh
	$cat ../id_rsa.pubid >> authorized_keys
	5) 訪問CVS源代碼庫(kù)
	客戶端設(shè)置如下可以訪問CVS了
	$export CVS_RSH=ssh
	$export CVSROOT=:ext:sun@192.168.0.252:/usr/local/cvsroot
	
	三、 SSH通道下的pserver方式
	1、 服務(wù)器端
	服務(wù)器按pserver方式設(shè)置,并改動(dòng)/etc/xinetd.d/cvspserver文件如下。
	service cvspserver
	{
	flags=REUSE
	socket_type=stream
	wait=no
	user=root
	server=/usr/bin/cvs
	server_args=-f –allow-root=/usr/local/cvsroot pserver
	passénv=
	log_on_failure+=USERID
	only_from=127.0.0.1
	bin=127.0.0.1
	}
	改完之后重啟xinetd.
	2、 客戶端
	1)客戶端需要通過(guò)任一個(gè)遠(yuǎn)程服務(wù)器的用戶,來(lái)建立ssh通道
	$cd ~
	$ssh-keygen –d
	$將.ssh/id_rsa.pubid文件內(nèi)容追加到遠(yuǎn)程用戶如zhang的~/.ssh/authorized_keys后。
	$ssh –v –a –e none –N –o ‘KeepAlive=yes’ –o ‘BatchMode=yes’ –L 2401:localhost:2401 zhang@192.168.0.252
	此時(shí)該窗口進(jìn)入阻塞狀態(tài)
	2)在另一個(gè)窗口中,
	$export CVSROOT=:pserver:sun@192.168.0.252:/usr/local/cvsroot
	其中sun是CVS用戶