IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  AIX and UNIX  >

在 AIX 6.1 上构建 CVS 开发环境

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 中级

贾 茂霞, 软件工程师, IBM

2009 年 9 月 24 日

在本文中讲述了在 AIX 6.1 操作系统上设置 CVS 服务器的详细过程,并且对如何使用 Rational Software Architect(RSA)7.5 连接 CVS 服务器的步骤也作了具体描述。

CVS(Concurrent Versions System)作为当今最常用的开源版本管理工具,在各种各样的项目中有着广泛的使用。本文介绍的是关于如何在 AIX 操作系统中安装和配置 CVS 服务器并与 RSA 共同构建开发环境的过程。从这篇文章中,你可以了解到如何在 AIX 操作系统中构建 CVS 服务器,并且从 RSA 通过 extssh 连接方式与服务器相连的详细步骤。 其中很多细节是笔者在实际操作过程中一点点体会到的。通过本文,绝对可以帮助你轻松构建类似的环境的,避免遇到笔者所遇到的种种问题。

在 AIX 6.1 上安装 CVS

在安装前,首先需要确认在本机的操作系统上是否已经安装了 cvs,一般使用如下命令进行察看:

 # rpm -qa|grep cvs

如果返回了 cvs 的版本信息,类似于:

 cvs-1.11.23

说明在系统上已经安装了相应版本的 CVS 服务。或者是在系统上直接输入如下的 CVS 命令:

 #cvs  -ver

如果已经安装了 CVS,会返回:

 Concurrent Versions System (CVS) 1.11.23 (client/server) 

 Copyright (C) 2006 Free Software Foundation, Inc. 

 Senior active maintainers include Larry Jones, Derek R. Price, 
 and Mark D. Baushke.  Please see the AUTHORS and README files from the CVS 
 distribution kit for a complete list of contributors and copyrights. 

 CVS may be copied only under the terms of the GNU General Public License, 
 a copy of which can be found with the CVS distribution kit. 

 Specify the --help option for further information about CVS

接下来的工作就是进行相应的配置,否则需要到互联网下载相应的 CVS 安装包,在本地进行安装。

事实上,使用后一种方法来进行查看,得到的信息更全面也更正确。因为如果系统上的 CVS 服务不是用 rpm 包安装的,使用 RPM 命令就不能查到。

CVS 可以直接使用 RPM 安装包来进行安装或者是通过编译源码进行安装。首先,通过搜索引擎找到 CVS 的源代码包并下载,然后,把安装包传到安装了 AIX 6.1 的服务器上,解压缩安装包。

如果得到的是 RPM 安装包,直接运行 rpm – i $cvspkgname 就可以完成。

如果得到的是源码安装包则需要先编译后才能进行安装,不过在这种安装包里一般都有一篇 README 文件,在其中有详细的安装说明,即使新手也能很容易的完成。

以下是 CVS 源码安装过程:

首先解压缩安装包:

 # gzip – d cvs-1.11.23.tar.gz 
 # tar – xvf cvs-1.11.23.tar

进入解压后的安装目录,对 CVS 进行编译安装:

 # cd cvs-1.11.23 
 # ./configure 
 # make 
 # make install

以上指令将把 CVS 安装到默认的 /usr/local/bin 目录。

在很顺利地完成了 CVS 的安装过程之后,下一步,就应该进行 CVS 的账号设置了。

建立 CVS 帐户和组

CVS 账号的使用有两种方法,一种是直接使用操作系统的账户,另一种是使用 CVS 内部账号。使用方式不同,创建账号的过程也不一样。下面对这两种方法都进行介绍,在具体的项目中可以根据自己的需要采取其中一种方法,或者同时采用这两种方法。

使用系统账号

这种方法比较简单,直接在操作系统上创建相应的账号就可以。

首先创建一个用于 CVS 的组,

 # groupadd cvsroot

然后根据项目的实际需求,创建相应的用户,譬如一个名为 rajeev 的程序员,需要访问 prj1 的库文件,可以使用如下步骤为他创建账号:

 # useradd  – g cvsroot  rajeev 
 # mkdir /home/rajeev 
 # chown rajeev:cvsroot /home/rajeev 

这样,rajeev 的系统账号就完成了创建,而且还有了相应的系统目录。

通过以下命令建立相应库目录,并且设置为只有 cvsroot 组的成员有访问权限

 # mkdir /opt/prj1 
 # chgrp cvsroot /opt/prj1 
 # chmod 775 /opt/prj1 

在后面的段落中,会说明如何创建 CVS 库。

使用 CVS 内部账号

在 CVS 库目录中,有一个特殊的目录:CVSROOT。所有 CVS 库的配置文件和管理文件都存储在这个目录中,CVS 帐号文件也不例外。

CVS 帐号文件并不是默认存在的,需要用以下命令创建:

 # touch /Clients/CVSROOT/passwd

在 CVS 帐号文件中加入可以访问这个库的账号,文件格式为:

 rajeev:passwd:cvsroot

这段代码的意思是账号名为 rajeev 的用户可以登录并使用这个文件所在的 CVS 库,而且该帐号登录后是 cvsroot 的权限。文件中的 passwd 应当是加密过的,可以使用如下的加密脚本来得到加密后的密码。

1 . 创建加密文件:

 #  vi /opt/pwd_gen

2 . 在其中输入如下内容:

      
       #!/usr/bin/perl 
       srand (time()); 
       my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))"; 
       my $salt = sprintf ("%c%c", eval $randletter, eval $randletter); 
       my $plaintext = shift; my $crypttext = crypt ($plaintext, $salt); 
       print "${crypttext}n";

3 . 修改加密文件的执行权限:

 # chmod 755 /opt/pwd_gen

4 . 为账号 rajeev 创建加密口令:

 # /opt/pwd_gen 123456 
 GO.to43VgKS4Y

5 . 把生成的加密口令替换到 CVS 帐号文件中:

     # vi $cvspath/CVSROOT/passwd 
     rajeev:GO.to43VgKS4Y:cvsroot 
    

注意:

这个加密的脚本需要系统安装了 perl 才可以正常执行。

运行这个脚本,每次得到的加密后的密码都不尽相同,选择其中不带特殊字符如“/”“\”等的加密口令填入帐号文件中更容易成功。

账号 rajeev 不需要在系统中存在。如果系统中已经有这个账号,可以使用以下命令把它删除:

 # userdel – r rajeev

建立文件夹和资源库

首先 , 创建一个目录作为存储 CVS 库的地方,譬如:

 # mkdir /cvsroot

通过以下命令,把该目录修改成所有 cvs 组的人都有可以访问和修改,其他组的人可以访问的权限:
 # chgrp cvs /cvsroot 
 # chmod 775 /cvsroot 

在这个目录下建立相应的仓库 :

1 .创建仓库目录

 # mkdir /cvsroot/clients

2 .修改仓库权限
 # chgrp cvs /cvsroot 
 # chmod 775 /cvsroot

3 .初始化仓库
 # cvs -d /opt/cvsroot/clients init 

用以下命令登入 CVS 库:
 cvs -d :pserver:jiamaox@9.123.100.215:/opt/cvsroot/clients login 

在 CVS 库建好以后,还需要对相应的配置文件进行设置,才能真正的使用。在下文(修改系统配置文件)中将详细地描述具体的配置的步骤。

修改系统配置文件

1 . 在 /etc/inetd.conf 中配置 CVS 库的访问路径。

只有在这里配置了 CVS 库的访问路径后,CVS 账号才能从远程登录,使 CVS 服务器才能真正的发挥作用。将以下代码行添加到 /etc/inetd.conf 中: cvspserver stream tcp nowait root /usr/local/bin/cvs cvs --allow-root=/opt/cvsrooot/clients pserver 注意,这样的配置设定只能允许对一个 CVS 库(也就是在代码行中“--allow-root=”后指定的 CVS 库)的访问,不能满足同时创建并访问多个 CVS 库的要求。 如果需要创建并同时使用多个 CVS 库,可以通过以下操作步骤来实现:

a. 在配置文件 /etc/inetd.conf 中,把原来的

 cvspserver stream tcp nowait root /usr/local/bin/cvs cvs --allow-root= 
 /opt/cvsrooot/clients pserver

改为

 cvspserver stream tcp nowait root /opt/cvs.run

b. 在脚本 /opt/cvs.run 里面加入以下代码:

 #!/bin/sh 
 /usr/local/bin/cvs -f --allow-root=/opt/cvsroot/clients --allow-root=/opt/cvsroot/ 
 training --allow-root=/opt/cvsroot/arc-2  --allow-root=/opt/cvsroot/arc-3 pserver 

这样配置,就可以解决同时设置并访问多个 CVS 源码库的要求了。

另外,在 /etc/inetd.conf 这个配置文件中直接加入如下代码行:

 cvspserver stream tcp nowait root /usr/local/bin/cvs cvs --allow-root=/opt/cvsrooot/ 
 clients --allow-root=/opt/cvsroot/training  --allow-root=/opt/cvsroot/arc-2  pserver 

也可以起到同时使用多个 CVS 库的效果,但是由于 /etc/inetd.conf 文档中对参数有着长度限制,只能添加少量的 CVS 库,调用脚本则可以避免这种问题。所以如果需要同时使用的 CVS 库的数量比较多的话,最好的还是通过脚本调用的方式来进行添加。

2 . 在 /etc/services 添加 CVS 服务

 # vi /etc/services

添加以下代码行:

 cvspserver              2401/tcp                # cvspserver 
 cvspserver              2401/udp                # cvspserver 

测试安装

在所有该安装的组件和服务都已经安装完成,该配置的文件和参数也都已经设定之后,就可对 CVS 的安装进行测试了。 首先需要重启服务:

 $stopsrc -s inetd 
 $startsrc -s inetd

登录 CVS 服务器:
 cvs -d :pserver:rajeev@xxx.xxx.xxx.xxx:/cvsroot/clients login

敲入命令再点击回车键,系统会提示输入该帐号的密码。输入密码后,如果没有什么错误信息出现就说明 CVS 安装成功,已经可以正常使用了。

建立用户环境(RSA 7.5)

作为 IBM 首要的架构管理工具,IBM Rational Software Architect V7.5 包括了非常强大的构架、开发、测试、分析及部署软件解决方案的能力。通过使用 RSA 自带的 CVS 插件连接上 CVS 服务器后,可以加强团队协作,进行团队开发。 以下将逐步说明如何在 RSA 7.5 中进行配置,以 extssh 方式连接到已经配置好的安装于 AIX 平台上的 CVS 服务器。

1 . 打开 RSA,选择 File->New->Project


图 1.在 RSA 上创建新项目
图 1.在 RSA 上创建新项目

2 . 在弹出对话框中,选择 CVS->Projects from CVS


图 2.选择从 CVS 中创建项目
图 2.选择从 CVS 中创建项目

3 . 添加 CVS Server,CVS 库和相应的账号名密码。

这一步很关键,任何一个参数填错了,都得不到想要的数据,甚至根本就不能连接到 CVS Server 上。

在下图中,Host 一栏只需填入 CVS 服务器的 IP 地址就可以;Repository path 则需要填入 CVS 库的绝对路径,而且要区分大小写(这一点一定要注意);输入用户名密码,然后在 Connection 的下拉列表中,选择 extssh,最后点击 Next,然后,你就可以看到 CVS 库中的代码了!


图 3.填写 CVS 的详细信息
图 3.填写 CVS 的详细信息

4 . 在上一步完成之后弹出的对话框里,有两个选项,一项是创建新项目时使用的,另一项则可以列出所有存在于当前 CVS 库中的项目,你可以选择一项或多项,然后点击“Finish”按键,就可以把想要的代码下载到本地了。


图 4. 选择 CVS 中的项目
图 4. 选择 CVS 中的项目

lesson learnt

1 .不是所有的 CVS 版本都具有相同的功能,即使是最新的版本,也可能不支持某些功能。所以在安装 CVS 服务之前应当了解自己的需要,在针对性地去找具有相应功能的版本,以免事倍功半,平白的增加工作量。

2 .需要事先了解某些特殊功能是否对操作系统也有特殊要求,需要提前对操作系统的环境也进行配置。譬如此次要求使用 extssh 连接方式,需要操作系统支持 ssh 服务。一开始没有了解到这一点,结果系统上并没有安装这个服务,所以总是配置不好。最后把这个服务安装在系统上以后,很快就配置好了。

结束语

本文已经描述了如何在 AIX 上配置 CVS 服务器, 并且在 RSA 7.5 种通过 extssh 连接方式连接到 CVS 服务器上得多个源码库。希望这篇文章会对您有所帮助。



参考资料

学习
  • CVS 中文手册”详细介绍了 CVS 配置及使用方法。

  • "功能丰富的 Perl: 管理 Linux 配置文件" 介绍了一些 CVS 的使用方法和技巧

  • 阅读功能丰富的所有 Perl 文章

  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。

  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。

  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。

  • 技术书店:浏览关于这些主题和其他技术主题的图书。


讨论


关于作者

贾茂霞,IBM 软件工程师,现任职于 ITAAS,具有多年配置管理经验,熟悉各种配置管理工具和操作系统。




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款