CVS (Concurrent Versions System) 是廣泛應用的開源版本控制系統,支持透明網絡訪問。本文詳細記錄 Linux 下從源碼編譯安裝、配置 xinetd 服務、初始化倉庫、用戶認證體系構建的全過程。
# 下載源碼包 (建議官網 cvshome.org 獲取最新版修復安全漏洞)
wget https://example.com/cvs-1.12.5.tar.bz2
# 解壓編譯安裝
tar -xjpvf cvs-1.12.5.tar.bz2
cd cvs-1.12.5
./configure --prefix=/usr/local/cvs --disable-server-flow-control
make
make install
安裝路徑:/usr/local/cvs。亦可使用 RPM 包安裝(rpm -ivh cvs-*.rpm)。
現代 Linux 已用 xinetd 替代 inetd。創建 /etc/xinetd.d/cvspserver:
service cvspserver
{
disable = no
socket_type = stream
wait = no
user = root
env = HOME=
server = /usr/local/cvs/bin/cvs
server_args = -f --allow-root=/home/cvsroot pserver
}
關鍵參數說明:
pserver:密碼認證模式(最常用)。高安全場景可用 SSH 隧道 (ext 方式)--allow-root:指定倉庫根目錄,可重複指定多個倉庫重啟 xinetd:/etc/rc.d/init.d/xinetd restart
# 創建專用組與用戶
groupadd cvs
useradd -g cvs -s /sbin/nologin cvsroot
chown -R cvsroot /home/cvsroot
# 初始化倉庫
cvs -d /home/cvsroot init
# 設置倉庫權限
chown -R cvsroot.cvs /home/cvsroot
chmod -R ug+rwx /home/cvsroot
chmod 644 /home/cvsroot/CVSROOT/config
/home/cvsroot/CVSROOT/config,取消註釋 SystemAuth=no(禁用系統賬號直接登錄,強制使用 CVS 專用密碼庫)useradd -g cvs -M developer1
passwd developer1
cp /etc/shadow /home/cvsroot/CVSROOT/passwd
chmod 644 /home/cvsroot/CVSROOT/passwd
編輯 passwd,僅保留開發者行,格式轉換為:
developer1:加密密碼字符串:cvsroot
(刪除第二個冒號後內容,追加 :cvsroot)userdel -f developer1客戶端設置環境變量並登錄:
export CVSROOT=:pserver:developer1@server_ip:/home/cvsroot
cvs login
# 輸入密碼後即可 checkout/update/commit 操作
passwd 文件CVS_RSH=ssh) 加密傳輸,防止明文密碼竊聽/home/cvsroot 目錄,制定災難恢復預案註:CVS 為早期版控系統,現代項目建議優先考慮 Git (分佈式) 或 Subversion (集中式) 作為替代方案,功能更豐富、生態更活躍。