当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > LINUX作CVS服务器之二

Linux服务器
linux下用cron定时执行任务的方法
.htaccess绑定域名到子目录的方法
linux apache下虚拟主机配置方法
apache 局域网访问配置方案
linux Apache服务器系统安全设置与优化
linux中mac地址绑定方法
linux托盘不断闪烁之解决方法
Apache配置 虚拟转向实例
Apache No space left on device的解决办法
Apache rewrite的重写相关的参数说明
LINUX入门级常用命令20条整理
Ubuntu设置开机自动挂载所有格式硬盘分区
5个可能被你忽略的Linux安全设置方法
学习Apache的mod rewrite、access写法
改版时保留原链接,创建新的URL的方法
rsync中文手册之使用rsync实现网站镜像和备份linux
rsync 数据同步使用详解
linux URL的301重定向代码分析
eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池
Apache服务器二级域名的完美实现

Linux服务器 中的 LINUX作CVS服务器之二


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 40 ::
收藏到网摘: n/a


软件库的备份与移动

备份软件库中的文件和备份其他文件并没有不同,但你需要一个备份工具开锁住CVS.这样,你必须先注册一个可以读取软件库的用户,打开CVS软件库,你需要编辑`#cvs.rfl’文件.

当你想用一备份的软库,恢复原来的库时,如果原库在你备份后作过改动.CVS将报错.你必须按以下的步骤来

?得到一个新的工作目录

?拷贝上一次提交失败的文件(,当然不能拷贝CVS的目录文件)

?在新目录下工作,使用cvsupdate或cvsdiff等命令指出那些作过改动,在使用cvscommit将改动保存到软件库.

你如果想移动一个软件库到其他地方也很简单.最简单的方法是将向要移动的目录创到一个新的目录中去.如果你想重新使用原来的目录的话,只能手工修改`CVS/Repository'和`CVS/Root',除非你精于此道,否则不建议使用.

4.2CVS的远程用户管理

作为一个CVS服务器,应该满足两点.首先保证软件库有足够大的空间.其次保证有不小于32M的内存,服务器为每一个连接它的用户产生两个进程,在子进程上的花销较小.但如果网络带宽不够,在父进程上的花销是巨大的.

另外一个大的花销是diff文件,当源文件很大时,对他进行验证或检测的花销也很大.

远程用户的登录认证方式

以rsh为例行远程登录

Cvs服务器使用rsh允许用户连接时应该配置.rshosts,假设在远程主机tom.exsample.com上的用户tom需要连接到funame.simple.com这个cvs服务器上工作.应该编辑服务器端的bach目录的.rshosts,在其中加入

Tom.exsample.comtom

客户端可运行rsh–lbachfuname.simple.com‘echo@PATH

以确定自己可以连接到CVS服务器上,并且客户应将显示的这个路径写入.bashrc或cshrc(而不是.logiin或.profile.)

除此之外,客户端还可以定义环境变量CVS_SEVER.来定义主机的位置.在服务器端,修改/etc/ineted.conf文件,来告诉服务器,在获得特定端口的连接时,运行cvssever.这个端口号缺省值是:2041.当然为了不再每次使用时都要进行设置,可以在用户端通过定义环境变量CVS_AUTH_PORT来使用.

如客户端的ineted允许使用原始调用,只需在/etc/ineted.conf文件中添加下面的句子即可2401streamtcpnowaitroot/usr/local/bin/cvscvs–f–allow–root=/cvsrootpserver

另外还可以用-T选项来定义缓冲目录.

—allow–root定义了可供用户使用的软件库,如果服务器上有更多的软件库需要重新使用这个句子.另外,内部用户可以这样定义环境变量CVSROOT

:pseve:[email protected]:/cvsroot

其中usr是用户名(linux系统的)funam.simple.com是cvs服务器,并假设/cvsroot是软件库的目录名.远程用户可用下面的形式:

:etx:psever:[email protected]:/cvsroot

:etx:定义了是远程用户,其余同上.

如果客户的ineted采用一般调用,只需在/etc/seveice中加入下面这一句:

cvspsever2401/tcp

重新启动ineted使其读取初始化文件即可.

CVS对于用户的管理.在缺省状态下(如用telnet登陆),是和linux系统使用同样的用户名与密码.即:只要你登陆linux系统,就拥有$CVSROOT的只读权限..当然,对某一软件的开发者来说必须拥有相对应目录的读写权限,才能完成源代码的升级等工作.因此,CVS也提供了自己的用户认证体系以更加方便的管理用户.

在服务器端的$CVSROOT/CVSROOT下可以有一个passwd文件(可以用环境变量CVS_PASSFILE来定义.)来记录cvs的用户信息.他采用的是和linuxetc/passwd同样的组织形式.同样,它的passwold也是经过linux标准加密方式的.下面是一个passwd的内容

anyone:

tom:xyzkue

mary:yuio:pubcvs

第一行的意思是,当用anyone的身份登录时,不需要任何密码.即使打入空串也可以.当然在这种方式下你得到的可能只是只读权.第二行的意思是,tom登录时需要敲入passwold.该passworld加密后是xyzkue.以这种方式登录后.一般可以获得较高的权限.

第三行的意思是,当mary登录时需要敲入密码.进入和系统用户相同的软件库.这样作的目的是因为.cvs将纪录它的用户在软件库中的所有的动作.定义和系统使用者不同的身份.使用cvs.

例如;使用用户tom可以用以下的方式登录:

$cvs–d:etx:[email protected]:/cvsrootlogin

(如果tom这个用户名在远端可内部是相同的,则tom@还可以省略)

同时,可以使用cvsloginout将所有的环境变量撤销.

使用GASSAPI接入

CVS还支持使用GASSAPI的TCP直接接入.在使用安转之前,需要将CVS重新编译以获得GASSAPI的支持.运用–with–gassapi来连接,或者用-a选向来连接.使用GASSAPI的认证等方式余地一种方式相同.

但在登录时.需要重新定义$CVSROOT如:

$cvs–d:gsever:[email protected]:/cvsrootlogin

使用kerberos直接连接

最简单的使用rsh的方法如上说述.这种方法的主要特点是所有数据都通过一个额外的程序.非常费时.如果安装了kerberos.可以直接用TCP连接.

同样CVS需要重新编译以获得keberos的支持可用--with-krb4来连接.这样传输的数据是没有加密的.如果要获得安全.必须在服务端和客户端都用`--enable-encryption来连接.此时,你应用通用的变量-x来要求加密.

在服务端需要编辑inetd.conf来运行cvskserver.客户端的缺省端口号是1999,如果想用其他端口号.需在用户端定义CVS_CLIENT_PORT

此时的登录命令应是

cvs-d:kserver:faun.example.org:/usr/local/cvsrootcheckoutfoo

用fork连接

用这方式,可以通过远程协议连接本地硬盘的软件库.换句话说,他能和:local:有相同的功能用这种方式的登录命令是

cvs-d:fork:/usr/local/cvsrootlogin

和用:etx:一样.缺省的主机名是cvs

三、cvs服务器架与应用实例

1.服务器安装配置

假设目前有一工作项目,需要用cvs来管理员码.这个开发组为内部3人,器ip分别是:192.168..1.2(用户名t1),192.168.1.3)(用户名时t3),193.168.1.3(用户名t3),远程用户一人,其主机是tom.example.com.(用户名是tom)

如果你已经安装了cvs,建立一cvs主机为cvs.exam.org的服务器非常简单.步骤大致如下:

1.1以root身份登录.建立软件库(repository)

$exportCVSROOT=/cvsroot

$mkdir/cvsroot

$cd/cvsroot

$cvsinit

1.2设置执行权限

$chmod/cvsroot/CVSROOT744(/ccvsroo/CVSOOT设置为只读)

$chmod/cvsroot764组号(/cvsroot对开发组可读写)

修改文件以利于其他人使用,因为开发组人员是系统用户,所以在这里用系统的用户名和password是比较好的.先编辑.rhosts件如下:

tom.example.com.tom

修改服务器上的/etc/inetd.conf文件,加入如下的句子

2401streamtcpnowaitroot/usr/local/bin/cvscvs-f--allow-root=/usr/cvsrootpserver

这样一来,一个基本的cvs服务器就建好了.

我们这里只是提供了一个基本的应用.cvs真正的细节应用非常复杂.我们这里只进行一些抛砖引玉的介绍.与兴趣的朋友可以细读它的安装文档.

2.应用实例

(使用主机上的cvs系统,可以telnet到主机上,然后使用,和本机使用没什么差别,所以本文一直不提)

假设上例中的tom想使用cvs主机上的cvs系统以和大家协作开发.首先它营配置自己的一些环境变量.首先编辑/etc/services'加入:

cvspserver2401/tcp

然后在.profile文件中加入如下代码

CVSROOT=:etx:psever:[email protected]:/cvsroot

ExportCVSROOT

这样他便可以使用$cvslogin来登录了.下面我们便以tom的具体使用为例子讲一下cvs的应用.和其他linux命令一样.cvs也有大量的参数.我么将在下一节做一个列表.

Tom在/usr/test目录下有如下文件

Ecample.cexampl2.ctes1.ctest2.cutimel.ctty.c

如果想在软件库建立自己的目录

$cd/usr/test

~test$cvsimport–m“tomfirstcreation”tomdirtomtomwork

Ntomdit/example.c

Ntomdit/exampl2.c

Ntomdir/test1.c

Ntomdir/test2.c

Ntomdir/utmel.c

Ntomdit/tty.c

Noconflictscreatbythisimport
命令说明import提交命令–m后加描述.tom发行商tomwork是发行标号.如果提示CVSROOT不对,可以用--d加CVSROOT

注:一切cvs的命令可以用cvscommand–H来获得帮助.这时服务器端的/cvs目录下多了一个tomdir子目录.内容下:

example.c,vexampl2.c,vtest1.c,vtest2.c,vtty.c,vutimel.c,v