级别: 中级 贾 茂霞, 软件工程师, 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,一般使用如下命令进行察看:
如果返回了 cvs 的版本信息,类似于:
说明在系统上已经安装了相应版本的 CVS 服务。或者是在系统上直接输入如下的 CVS 命令:
如果已经安装了 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 的组,
然后根据项目的实际需求,创建相应的用户,譬如一个名为 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 的用户可以登录并使用这个文件所在的 CVS 库,而且该帐号登录后是 cvsroot 的权限。文件中的 passwd 应当是加密过的,可以使用如下的加密脚本来得到加密后的密码。
1 . 创建加密文件:
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 . 修改加密文件的执行权限:
4 . 为账号 rajeev 创建加密口令:
# /opt/pwd_gen 123456
GO.to43VgKS4Y |
5 . 把生成的加密口令替换到 CVS 帐号文件中:
# vi $cvspath/CVSROOT/passwd
rajeev:GO.to43VgKS4Y:cvsroot
|
注意:
这个加密的脚本需要系统安装了 perl 才可以正常执行。
运行这个脚本,每次得到的加密后的密码都不尽相同,选择其中不带特殊字符如“/”“\”等的加密口令填入帐号文件中更容易成功。
账号 rajeev 不需要在系统中存在。如果系统中已经有这个账号,可以使用以下命令把它删除:
建立文件夹和资源库
首先 , 创建一个目录作为存储 CVS 库的地方,譬如:
通过以下命令,把该目录修改成所有 cvs 组的人都有可以访问和修改,其他组的人可以访问的权限:
# chgrp cvs /cvsroot
# chmod 775 /cvsroot
|
在这个目录下建立相应的仓库 :
1 .创建仓库目录
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 服务
添加以下代码行:
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 上创建新项目

2 . 在弹出对话框中,选择 CVS->Projects from CVS
图 2.选择从 CVS 中创建项目

3 . 添加 CVS Server,CVS 库和相应的账号名密码。
这一步很关键,任何一个参数填错了,都得不到想要的数据,甚至根本就不能连接到 CVS Server 上。
在下图中,Host 一栏只需填入 CVS 服务器的 IP 地址就可以;Repository path 则需要填入 CVS 库的绝对路径,而且要区分大小写(这一点一定要注意);输入用户名密码,然后在 Connection 的下拉列表中,选择 extssh,最后点击 Next,然后,你就可以看到 CVS 库中的代码了!
图 3.填写 CVS 的详细信息

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

lesson learnt
1 .不是所有的 CVS 版本都具有相同的功能,即使是最新的版本,也可能不支持某些功能。所以在安装 CVS 服务之前应当了解自己的需要,在针对性地去找具有相应功能的版本,以免事倍功半,平白的增加工作量。
2 .需要事先了解某些特殊功能是否对操作系统也有特殊要求,需要提前对操作系统的环境也进行配置。譬如此次要求使用 extssh 连接方式,需要操作系统支持 ssh 服务。一开始没有了解到这一点,结果系统上并没有安装这个服务,所以总是配置不好。最后把这个服务安装在系统上以后,很快就配置好了。
结束语
本文已经描述了如何在 AIX 上配置 CVS 服务器, 并且在 RSA 7.5 种通过 extssh 连接方式连接到 CVS 服务器上得多个源码库。希望这篇文章会对您有所帮助。
参考资料 学习
讨论
关于作者  | |  | 贾茂霞,IBM 软件工程师,现任职于 ITAAS,具有多年配置管理经验,熟悉各种配置管理工具和操作系统。 |
对本文的评价
|