本篇主要講述CVS服務(wù)器的安裝與配置,關(guān)于CVS客戶(hù)端的信息請看TortoiseCVS或wincvs:
1、驗證是否已安裝CVS
#rpm -q cvs
如果能顯示出類(lèi)似這樣的版本信息,證明已安裝CVS:
#cvs-1.11.2-10
2、創(chuàng )建CVS用戶(hù)組與用戶(hù)
root用戶(hù)下執行以下命令:
#groupadd cvs
#adduser cvsroot
#passwd cvsroot
#輸入cvsroot用戶(hù)密碼
3、創(chuàng )建CVSROOT
root用戶(hù)下執行:
#mkdir /var/cvsroot 此處可改為你想要的cvsroot路徑
#chown cvsroot.cvs /var/cvsroot 更改cvsroot權限
4、初始化CVS
需要在cvsroot用戶(hù)下執行
#su - cvsroot
#cvs -d /var/cvsroot init 此處對應上面創(chuàng )建的cvsroot路徑 #注:對應后面/etc/xinetd.d/cvspserver文件的配置
5、修改環(huán)境變量 #可改可不改
編輯/etc/profile或者/home下相應用戶(hù)的.profile文件
此處已修改/etc/profile為例:
#exit
退回到root用戶(hù),只有root用戶(hù)才有權限修改/etc/profile
#vi /etc/profile 編輯/etc/profile文件
在末尾加上以下兩句:
CVSROOT=/var/cvsroot
export CVSROOT
更新環(huán)境變量:
#. /etc/profile
此時(shí)系統已經(jīng)認識$CVSROOT這樣的環(huán)境變量
6、啟動(dòng)cvs服務(wù)器:
在/etc/xinetd.d/目錄下創(chuàng )建文件cvspserver,內容如下:
# default: on
# description: The cvs server sessions;
service cvspserver
{
socket_type = stream
wait = no
user = root
server = /usr/bin/cvs
server_args = -f --allow-root=/var/cvsroot pserver #注,對應第4步cvs -d /var/cvsroot init命令
only_from = 192.168.10.0/24
}
其中only_from是用來(lái)限制訪(fǎng)問(wèn)的,可以根據實(shí)際情況不要或者修改。
修改該文件權限:
# chmod 644 cvspserver
然后重新啟動(dòng)xinetd:
# /etc/rc.d/init.d/xinetd restart
然后察看cvs服務(wù)器是否已經(jīng)運行:
# netstat -lnp|grep 2401
tcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN xxxxxx/xinetd
則說(shuō)明cvs服務(wù)器已經(jīng)運行。
7、建立cvs用戶(hù)
為了CVS系統的安全,我們要修改/var/cvsroot/CVSROOT/config文件,將"#SystemAuth =no"的前而的注釋號#去掉,即改為“SystemAuth =no”,然后給開(kāi)發(fā)者們逐一建立賬號,新建的不要分配用戶(hù)目錄,因為它將作為一個(gè)虛擬用戶(hù)帳號來(lái)使用,具體命令如:
[root@terry root]# chmod -R ug+rwx /var/cvsroot
[root@terry root]# chmod 644 /var/cvsroot/CVSROOT/config
[root@terry root]# useradd -g cvs -M bogus
[root@terry root]# passwd bogus
上面的命令就創(chuàng )建了一個(gè)并沒(méi)有Home目錄的用戶(hù)bogus,接著(zhù)將系統的shadow文件復制到CVSROOT, 并重命名為passwd:
[root@terry root]# cp /etc/shadow /var/cvsroot/CVSROOT/passwd
[root@terry root]# chmod 0644 /var/cvsroot/CVSROOT/passwd
然后修改passwd文件,將除剛才設定的可使用CVS的用戶(hù)cvsroot及bogus之外的所有行刪除,然后去掉每行第二個(gè)冒號以后的所有內容,并添上字符串cvsroot, 改為如下格式:
[root@test11 CVSROOT]# more passwd
cvsroot:$h3ntACe9$cM2SADto6B9P5h5Wrbgyi.:cvsroot
bogus:ttSJv9AK.zzZhhHLEQZnZPgEe8f1:cvsroot
然后,刪除掉剛剛在系統中添加的那個(gè)用戶(hù)bogus:
[root@terry root]# userdel -f bogus
好了,至此,CVS服務(wù)器端已配置完成。這時(shí)你的CVS用戶(hù)就只能用passwd中規定的用戶(hù)來(lái)登陸你的CVS服務(wù)器了
8、linux客戶(hù)端登錄測試
假定cvs服務(wù)器在192.168.10.11上,系統上有用戶(hù)cvsroot和bogus。登陸另一臺linxu機器,執行下列命令可以完成測試:
[root@test2 test]# export CVSROOT=:pserver:cvsroot@192.168.10.11:2401/var/cvsroot
[root@test2 test]# cvs login
Logging in to :pserver:cvsroot@192.168.10.11:2401/var/cvsroot
CVS password: #注:輸入密碼,沒(méi)有出錯提示表示登陸成功。
[root@test2 test]#
[root@test2 test]# export CVSROOT=:pserver:bogus@192.168.10.11:2401/var/cvsroot
[root@test2 test]# cvs login
Logging in to :pserver:bogus@192.168.10.11:2401/var/cvsroot
CVS password: #注:輸入密碼,沒(méi)有出錯提示表示登陸成功。
[root@test2 test]#
配置中碰到的問(wèn)題
1、cvsroot用戶(hù)不能登錄
[root@test2 test]# export CVSROOT=:pserver:cvsroot@192.168.10.11:2401/var/cvsroot
[root@test2 test]# cvs login
Logging in to :pserver:cvsroot@192.168.10.11:2401/var/cvsroot
CVS password:
no such user cvsroot in CVSROOT/passwd
解決辦法,查看發(fā)現原因是/var/cvsroot/CVSROOT/passwd文件中沒(méi)有包含cvsroot用戶(hù)
2、只有cvsroot用戶(hù)可以登陸,別的用戶(hù)都不能登錄
查看原因發(fā)現是 /etc/xinetd.d/cvspserver文件的server_args = -f --allow-root=/cvsroot pserver目錄參數不對,因為我們此次配置的cvs工作目錄是/var/cvsroot,而不是/home/cvsroot,所以將該參數為server_args = -f --allow-root=/var/cvsroot pserver,所有用戶(hù)均可正常登錄
如果想在一個(gè)linux系統上建多個(gè)源代碼庫,分別提供cvs服務(wù)。重復上面步驟就可以了。
參考資料:
http://blog.o2.cn/lg/2004/11/01/cvs_install_config
http://www.e800.com.cn/articles/36/1091788059301_2.html
http://it.sohu.com/2004/03/24/05/article219580551.shtml
http://tech.ccidnet.com/pub/article/c302_a131866_p1.html
http://www.linuxforum.net/docnew/showthreaded.php?Cat=&Board=db&Number=383&page=0&view=collapsed&sb=5&o=all (說(shuō)明了如何建立多個(gè)數據倉庫)
http://www.chedong.com/tech/cvs_card.html (cvs權限管理)
http://www.cnblogs.com/windsails/articles/39283.html (CVS在Window2000下的權限管理)
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/