技术开发 频道

在Red Hat Linux 7上安装配置CVS

【IT168 技术文章】    本文,即关于在IBM WebSphere Studio Application Developer中进行小组开发的系列文章的第三篇,重点讲解如何在Red Hat Linux 7上安装CVS并将其配置为SCM资源库。WebSphere Studio Application Developer(以下称为Application Developer)可以与CVS这种主流的开放源代码的、网络透明的版本控制系统一起无缝地共同工作。CVS在大多数平台上都可以运行,包括Windows、Linux、AIX和UNIX。将它与Application Developer一起安装在Red Hat Linux上有下列几点好处:

  • Linux现在是占垄断地位的开放源代码操作系统。
  • Red Hat是Linux的主要分发商之一。
  • CVS包含在Red Hat Linux 7分发版中。
  • CVS for Linux非常稳定、可靠,并且可伸缩,对于个人开发者、小规模的小组以及大规模、分布式小组都很有用。
  • Application Developer运行在Red Hat Linux 7上。
  • 在使用Application Developer时,您可以使用CVS作为本地资源库或者作为整个小组的共享资源库。

    然而,安装和配置CVS for Linux并非无足轻重,并且相关的好文档极少。下面的一步一步的指导应该能够帮助系统管理员为使用Application Developer的开发者配置CVS for Linux。

在Red Hat Linux 7上安装CVS

    CVS版本1.11.1.3可能已经缺省安装在您的Red Hat Linux 7上了。要检查是否已安装了CVS,请输入命令rpm -qa|grep 'cvs'。如果返回的是cvs-1.11.1-3,就意味着已经安装了CVS。
    如果这条命令没返回任何内容,您就需要安装CVS。CVS rpm通常位于Red Hat Linux 7分发版的安装CD #2上的RedHat/RPMS目录中。将该CD安装到/mnt/cdrom后,使用rpm命令安装CVS:
    rpm -i /mnt/cdrom/RedHat/RPMS/cvs-1.11.1p1-3.i386rpm

建立CVS用户帐户和组

    1. 以root用户的身份登录。
    2. 创建一个名为cvs的用户,让这个用户使用cvs作为他的主组。
    3. 创建将在Application Developer中使用cvs的用户。本文使用cvsdev1和cvsdev2。
    4. 使用cvs的开发者可以使用他们的私有组作为他们的主组。例如,cvsdev1的主组是cvsdev1,但要确保他们还属于cvs组。

建立文件夹和资源库

    1. 以用户cvs的身份登录。
    2. 在cvs自己的主目录(即/home/cvs/)下创建一个名为repository的目录。
    3. 设置目录/home/cvs/repository的访问级别和访问模式:chmod 770 /home/cvs/repository
    4. 设置目录/home/cvs/repository的setgid位:chmod g+s /home/cvs/repository
    说明:在一个目录中创建文件时,该文件缺省情况下属于其所有者的主组。设置了目录的setgid位后,新文件将与该目录属于相同的组,而不属于其所有者的主组。例如,如果用户cvsdev1在目录/home/cvs/repository中创建了一些文件,则这些文件将属于cvs组而不是它的主组cvsdev1。
    这一步至关重要,因为它使CVS用户能够检出其他用户创建的文件。如果这一步没完成,那么当您检出另一个用户创建的文件时,操作将失败,并发出下面这条消息:
    Failed to create lock directory for /home/cvs/repository/...: Permission denied.
    Failed to obtain dir lock in repository /home/cvs/repository/...

    5. 初始化资源库:
    cvs -d /home/cvs/repository init

    6. 注销用户cvs。

修改xinetd服务以启用pserver协议

    1. 以root用户的身份登录。
    2. 在目录/etc/xinetd.d中创建一个名为cvspserver的文件,文件内容如下:
    # default: off
    # description: An cvs server.
    service cvspserver
    {
       disable = no
       socket_type = stream
       protocol = tcp
       user = root
       wait = no
       server = /usr/bin/cvs
       server_args = -f --allow-root=/home/cvs/repository pserver
       log_on_success +=USERID
       log_on_failure += USERID
    }

    3. 打开/etc/services并核实存在下面这两行代码。如果不存在,则添加它们:
    cvspserver 2401/tcp     # CVS client/server operations
    cvspserver 2401/udp     # CVS client/server operations

    4. 重新启动xinetd服务:
    service xinetd restart

建立用户环境

    1. 打开文件/etc/profile。您应该能在该文件中看到下面这些行:
    USER='id -un'
    LOGNAME=$USER
    MAIL="/var/spool/mail/$USER"

    2. 在环境变量MAIL后添加一行内容:
    CVSROOT=":pserver:$USER@localhost:/home/cvs/repository"

    3. 在该文件中,您还应该看到这样一行:
    export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC

    4. 修改这一行并将CVSROOT添加到导出(export)列表中,如下所示:
    export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC CVSROOT

用本地用户测试安装

    1. Developer 1以cvsdev1的身份登录。
    2. 通过输入下面的命令来确保环境变量是正确的:
    echo $CVSROOT

    它应该返回与用户名有关的象下面这样的结果:
    :pserver:cvsdev1@localhost:/home/cvs/repository

    3. 用下面的命令登录CVS:
    cvs login

    您将被提示提供密码。输入您的Linux密码。
    4. 创建一个名为project1的目录:
    mkdir project1

    5. 在目录project1中创建一个名为Test.java的文件,文件内容如下:
    public class Test{
       public String sayHello(String name){
          return "Hello"+name;
       }
    }

    6. 使用这些命令将Test.java导入到CVS资源库中的模块project1:
    cd /home/cvsdev1/project1
    cvs  import -m "import Test.java" project1 wsadgroup release1_0

    CVS导入操作完成后,您应该会看到一条这样的消息:
    N  project1/Test.java
    No conflicts created by this import

    7. 备份您的源代码:
    cd
    mv project1 project1.sav

    8.从CVS资源库检出project1:
    cd
    cvs checkout project1

    您应该会看到在/home/cvsdev1下创建了一个名为project1的新目录,该目录下有一个文件Test.java和一个目录CVS。

    9.Developer 2以cvsdev2的身份登录。
    10. cvsdev2登录CVS:
    cvs login

    11. cvsdev2从CVS检出project1:
    cvs checkout project1

    您应该会看到这样一条来自CVS的消息:
    cvs server:Updating project1
    U project1/Test.java

    12. 向Test.java(位于目录project1中)添加一个新方法:
    public String sayBye(String name){
       return "Bye, " + name;
    }

    13. 把Test.java检入到资源库中:
    cvs commit -m "checkin Test.java" Test.java

    您应该会看到这样一条来自CVS的消息:
    Checking in Test.java;
    /home/cvs/repository/project1/Test.java, v <-- Test.java
    new revision: 1.2; previous revision: 1.1
    done

    用户cvsdev1用下面这些命令捕获cvsdev2所做的更改:
    cd /home/cvsdev1/project1
    cvs update Test.java

    您应该会看到这样一条来自CVS的消息:
    U Test.java

    您可以用编辑器打开Test.java来查看cvsdev2所做的更新。

用Application Developer测试安装

    1. 打开Team Perspective,选择Repositories视图并在工作台(Workbench)中选择File->New->Other。在CVS类别中选择Repository Location并单击Next。完成资源库位置向导。下面简要描述了向导的这个面板上的CVS术语:

  • Connection type

    您想用来连接到CVS服务器的协议。缺省值是pserver,它代表密码服务器协议。这是我们刚才在Red Hat Linux 7中设置的连接类型。

  • User name

    您用来登录到CVS服务器中的用户名。例如我们刚才在Red Hat Linux 7中定义的cvs组中的cvsdev1或cvsdev2。

  • Host name

    您想连接到的服务器的机器名。它将是Red Hat Linux机器的主机名或IP地址。

  • Repository path

    服务器上的资源库位置的全限定路径。对于我们的安装和配置,它将是:/home/cvs/repository。

  • CVS location

    Application Developer用来连接到资源库的完整位置。当您填好前面几个字段时,它将被动态构建。

  • Validate on finish

    它在返回到IDE前测试资源库连接。请一直启用它作为第一次连接性测试。


图1


    2. 单击Finish。如果Application Developer能够连接到CVS服务器,您将被提示提供该用户标识的密码。请参见下图 2。


图2
 

    一旦用户标识和密码通过验证,您就会返回到Repositories视图,并且该视图上多了一个Application Developer连接到的新资源库条目。
    3. 展开Streams->HEAD->project1,您就可以看到版本为分发版1.2的Test.java,这与我们在“用本地用户测试安装”这一节的第13步中看到的一致。


图3


    4. 右键单击Test.java并选择Show in Resource History。在Resource History视图中,您可以看到cvsdev1何时对Test.java进行了第一次修订,在代码发生更改后,cvsdev2何时把Test.java检入到了资源库中。


图4


图5


    5. 最后,右键单击project1并选择Add to Workspace。您们就可以开始对Application Developer中的project1进行操作了!


图6


结束语

    本文已经描述了如何在Red Hat Linux中配置CVS。我希望这篇文章会对您有所帮助,并欢迎所有的反馈。

0
相关文章