VPS上搭建CVS服务器方法

有了自建的Xen VPS并成功通过Dropbox自动备份后,对于程序员来说更关心的是代码版本管理。之前也用Dropbox打包后备份,但这个方法无法回滚。

网上找到CVS Server在CentOS 6的部署办法,这里把脚本总结一下:

[bash]
#!/bin/bash
#
#没有安装cvs server时先安装一下
yum -y install cvs
#
#新建cvs组和cvsroot用户
groupadd cvs
useradd -g cvs cvsroot
#
#设置cvsroot用户的密码并改cvsroot目录的权限
passwd cvsroot
chmod 775 /home/cvsroot
#
#生成cvspserver配置文件,目录指向/home/cvsroot,用pserver方式访问
cat >/etc/xinetd.d/cvspserver<<EOF
# default: off
# description: The CVS service can record the history of your source \
#              files. CVS stores all the versions of a file in a single \
#              file in a clever way that only stores the differences \
#              between versions.
service cvspserver
{
disable                 = no
port                    = 2401
socket_type             = stream
protocol                = tcp
wait                    = no
user                    = root
passenv                 = PATH
server                  = /usr/bin/cvs
env                     = HOME=/home/cvsroot
server_args             = -f –allow-root=/home/cvsroot pserver
}
EOF
#
#使用cvsroot用户执行cvs的初始化,会在/home/cvsroot下生成CVSROOT目录
runuser -l cvsroot -c “cvs -d /home/cvsroot init”
#
#启动服务
/etc/rc.d/init.d/xinetd restart
#
#防火墙要开通TCP2401端口
iptables -A INPUT -p tcp –dport 2401 -j ACCEPT
service iptables save
service iptables restart
#
#下面的脚本要切换到cvsroot用户来执行
#如果su切换因需要密码而失败,需要手切换到并逐一执行
su cvsroot
cd ~/CVSROOT
touch passwd writers readers
chmod 770 passwd writers readers
#
#往后都是注释脚本,根据需要执行
#这是添加新用户脚本,使用perl代替Apache的htpasswd命令来生成密码,因这我的空间是LNMP
#add users, password do not support ‘@’ character
#echo -e “newuser:`perl -le ‘print crypt(“newpassword”,”salt”)’`:cvsroot” >> passwd
#
#add read-write users
#echo newuser >> writers
#
#add readonly users
#echo newuser >> readers
#
#下面的脚本是客户端的一些主要用法,可以用“cvs –help login”等来看命令格式
#login command
#cvs -d :pserver:newuser@host:/home/cvsroot login
#
#logout command
#cvs -d :pserver:newuser@host:/home/cvsroot logout
#
#checkout|update command
#cvs -d :pserver:newuser@host:/home/cvsroot checkout|update Test
[/bash]

Tags:

Leave a Reply