FreeBSD 8.1下CVS服務器配置步驟與須知
原創【51CTO獨家特稿】本文一步一步介紹了FreeBSD 8.1下CVS服務器的配置。CVS服務器是版本控制系統,一般用于開發環境,用于多人協同開發項目的源代碼管理。
推薦專題:企業內網開發環境部署與管理全攻略(FreeBSD+PHP)
作者簡介:余洪春(博客),網名撫琴煮酒,英文名Andrew.Yu,武漢某外企高級Linux/Unix系統管理員、項目實施工程師,紅帽RHCE講師,擅長負載均衡高可用和中小型證券類和商務網站架構,目前關注網站架構研究及網絡安全。
安裝前的準備工作
系統是64位的FreeBSD 8.1,相關優化及配置我這里也不多費筆墨了(具體可以參考51CTO的FreeBSD配置與優化專題)。將ports配置好,另外在后面的過程中由于要用到Apache的htpasswd,所以預先要安裝好apache22:
cd /usr/ports/www/apache22 make install clean
安裝步驟
①下載cvs源碼包:Sourceforge下載地址(1.11.21版本)
我使用的是cvs-1.11.21.tar包
源碼編譯安裝
./configure --prefix=/usr/local/cvs make make install
②設置cvs使用超級服務器進程inetd啟動方式
修改inetd的配置文件/etc/inetd.conf,最后一行添加
cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/
cvsroot pserver
注:
- root是執行cvs進程的用戶
- /usr/bin/cvs是cvs可執行文件的存儲路徑
- /usr/bin/cvs是cvs可執行文件存放的路徑,要保證/usr/bin/里有cvs可執行文件;
- cvs --allow-root=/home/cvsroot 指定cvs的項目主目錄,即用戶可訪問的項目原文件的一個存放目錄,可以指定多個源代碼倉庫
檢查/etc/services里有是否有cvspserver選項,若無的話則需用一個標識來代替cvs的端口號,
在/etc/services 文件中添加:
cvspserver 2401 #表示用cvspserver來標識2401端口
③設置cvs
添加cvs的管理用戶和組
在freebsd中用adduser命令,按照提示一步步增加cvsroot用戶。FreeBSD默認為此用戶創建一個與用戶名同名的組cvsroot,其它均可設置成默認值
④初始化cvs源代碼倉庫
將/home/cvsroot目錄的權限改為775,我第三步已配置,這里檢查下即可。這樣下來cvsroot組的用戶對此目錄也有讀寫權限。
初始化目錄
cvs -d /home/cvsroot init chmod -R 644 /home/cvs/cvsroot/CVSROOT/config #給權限config文件,不然等會又會因權限問題報錯
◆注意
cvs中默認一個用戶checkout代碼時候,會在當前模塊下生成一個鎖文件,如果這個用戶對當前模塊沒有寫權限,讀是不可能的。配合上面的權限設置,必須改一下cvs服務器配置。改成不在當前模塊目錄下生成鎖文件,把鎖文件集中到一個所有用戶都有讀寫權限的目錄。修改配置文件CVSROOT/config:
# Put CVS lock files in this directory rather than directly in the repository. # LockDir=/var/lock/cvs
去掉LockDir前的#即可
mkdir -p /var/lock/cvs
給予最高權限
chmod -R 777 /var/lock/cvs
⑤為cvs添加一個普通用戶test
adduser命令添加test用戶,密碼自己設定;用pw groupmod將其添加進cvsroot組
pw groupmod cvsroot -m test
配置完成后可用命令id test來檢查以上配置是否生效
繼續為cvs添加test用戶,我這里為了減少出錯機率,直接也生成了系統用戶test,應該不需要以上步驟,有興趣的朋友可以驗證下
#htpasswd -cb /home/cvsroot/CVSROOT/passwd admin admin
創建cvs用戶密碼文件,創建用戶admin,密碼為admin,因其加密方式與apache的htpasswd相同;c參數用一次即可,添加下一個用戶就不需要此參數了
#htpasswd -b /home/cvsroot/CVSROOT/passwd test test
添加test用戶,密碼為test
⑥啟動inetd超級服務器進程,使其監聽2401端口
/etc/rc.d/inetd start
重讀配置文件/etc/rc.d/inetd reload
⑦用sockstat -4l查看系統正在監聽的端口,查看2401端口是否正處于LISTENED狀態
#sockstat -4l
freebsd用sockstat -l或者netstat -an來查看系統打開的端口,和使用此端口的進程及用戶的信息。還可以用telnet localhost 2401來驗證下看打開端口沒有
⑧本機用戶驗證是否可以登錄cvs服務器
# cvs -d:pserver:test@192.168.21.246:/home/cvsroot/ login
好了,CVS服務器在FreeBSD 8.1上的配置已經完成。按照上面的步驟下來,應該沒有什么其他需要注意的問題。
下面再簡單介紹一下如何使用:
Linux或FreeBSD遠程如何連接
如果要能在shell下用到export命令,請注意你的shell是否是sh或bash,如果不是請更正
#export CVSROOT=:pserver:test@192.168.21.246:2401/home/cvsroot #cvs login Logging in to :pserver:test@192.168.238.128:2401/home/cvs/cvsroot CVS password: test
簽出項目到本地
cvs checkout project
更新項目
cvs update
添加文件后需要提交,其語法基本跟SVN是一樣的。
Windows下我習慣用TortoiseCVS來提交,配置也比較簡單,具體設置見下列截圖:
【編輯推薦】