Chinaunix首页 | 论坛 | 博客
  • 博客访问: 67150
  • 博文数量: 8
  • 博客积分: 471
  • 博客等级: 下士
  • 技术积分: 135
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-02 13:22
文章分类

全部博文(8)

文章存档

2010年(8)

我的朋友

分类: 项目管理

2010-12-19 23:38:15

在分析和追踪nginx代码的时候,因为要在Linux上运行,又想用notepad++(看vi眼酸),所以就试着装了个CVS服务器。网上也有不少别人总结的安装指南,根据他们的经验和自己的实践,总结如下。

系统:Fedora 8(装在vmware player的虚拟机)

1.安装CVS
在fedora下面,跟centos一样,可以用yum来装:

$yum -y install cvs

另外,还要安装xinetd (eXtended InterNET services daemon) ,即super daemon (这个鸟哥也有介绍,就不多作介绍了),用来启动CVS服务

$yum -y install xinetd

2.最好把SELinux停掉,否则可能会在启动xinetd的时候导致如下:
bind failed (Permission denied (errno = 13)). service = cvspserver
可以用"setenforce 0"或者设置"/etc/sysconfig/selinux"。

3.下面,是对CVS服务的配置:
$vi /etc/xinetd.d/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;

并使其生效:
$source /etc/profile;

6. 启动CVS服务:

$service xinetd restart;

检查服务是否启动:
$netstat -l | grep cvspserver;

启动正常的话,可以看到如下内容:

tcp 0 0 *:cvspserver *:* LISTEN

7. 初始化CVS目录,因为已经设置了CVSROOT,所以只需要运行:
$cvs init;

也可以指定一个根目录:
$cvs -d /path/to/cvs/root init;

这样,会在/home/cvsroot下生成一个CVSROOT的dir,里面存放着cvs服务的一些信息。

8. 创建一个CVS用户:

$useradd bolla;

然后把/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) |
给主人留下些什么吧!~~