在分析和追踪nginx代码的时候,因为要在Linux上运行,又想用notepad++(看vi眼酸),所以就试着装了个CVS服务器。网上也有不少别人总结的安装指南,根据他们的经验和自己的实践,总结如下。
系统:Fedora 8(装在vmware player的虚拟机)
1.安装CVS
在fedora下面,跟centos一样,可以用yum来装:
另外,还要安装xinetd (eXtended InterNET services daemon) ,即super daemon (这个鸟哥也有介绍,就不多作介绍了),用来启动CVS服务
2.最好把SELinux停掉,否则可能会在启动xinetd的时候导致如下:
bind failed (Permission denied (errno = 13)). service = cvspserver |
可以用"setenforce 0"或者设置"/etc/sysconfig/selinux"。
3.下面,是对CVS服务的配置:
这个文件在安装以后就会自动生成,当然,也可以是其它的名字(如有些人喜欢命名成"cvspserver")。只要文件里面的service名称是cvspserver就行了(跟/etc/services里面的名称符合就可以了)。在我的配置里,它的内容如下:
service cvspserver
{
disable = no
port = 2401
socket_type = stream
wait = no
user = root
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvsroot pserver
}
其中,"/home/cvsroot"是CVS项目的路径。
4. 添加用户和群组:
$groupadd cvs; $useradd cvsroot; |
然后,设置CVS项目路径的权限,我把cvsroot的home路径作为了项目路径(也可以设置其它的路径,那么上面server_args里面的路径就要改一改了)
$chown cvsroot.cvs /home/cvsroot; $chmod -R 771 /home/cvsroot; |
5. 设置CVSROOT路径。在/etc/profile中添加:
export CVSROOT=/home/cvsroot; |
并使其生效:
6. 启动CVS服务:
检查服务是否启动:
$netstat -l | grep cvspserver; |
启动正常的话,可以看到如下内容:
tcp 0 0 *:cvspserver *:* LISTEN |
7. 初始化CVS目录,因为已经设置了CVSROOT,所以只需要运行:
也可以指定一个根目录:
$cvs -d /path/to/cvs/root init; |
这样,会在/home/cvsroot下生成一个CVSROOT的dir,里面存放着cvs服务的一些信息。
8. 创建一个CVS用户:
然后把/etc/shadow文件(用户密码)拷贝到/etc/cvsroot/CVSROOT,并命名为passwd。删除除了"bolla"以外的其它用户,并把bolla这一行改为类似下面的格式:
|user| password encoded |cvsuser| bolla:$1$wC5Pz02H$ZpN9zXFTxk9Rjb5cX9ucJ1:cvsroot |
9. 在windows下面用TortoiseCVS登入:
Protocol: pserver
Server: xx.xx.xx.xx (IP)
Port: 2401
Repository folder: /home/cvsroot
User name: bolla
10. 在CVS服务目录下import项目代码:
$cd /path/to/your/prj; $cvs import -m "log msg" nginx-0.8.53 bolla start; |
这里,"log msg"是日志信息,"nginx-0.8.53"是项目在CVS目录下的路径和项目名称,bolla是vendor tag,即项目所有者,"start"是release tag。
OK的话,就可以在ToitoiseCVS中通过Fetch list来找到这个项目,并import到本地,进行修改。
===================================================================================
结果发现,在CVS服务器的项目目录下面,原来的文件名后面都多了",v"的后缀,还是不能直接编译。只能再创建一个新的dir,然后用"cvs checkout"命令获取在TortoiseCVS更新的代码,然后进行编译。
阅读(689) | 评论(0) | 转发(0) |