Linux系统安装和使用CVS
 
CVS 是 Concurrent Version System(并行版本体系 )的缩写,用于版本管理 .假如 人人 曾经参加 过多人协作开拓的项目,人人 确定 有如许 的悲凉 经验 :由于多小我私家 同时批改同一个文件, 本身 辛辛劳 苦批改的措施被别人彻底删除了.其它,假如 你的软件/措施已经公布 了三个版本, 而这时间 用户必要 你批改第二个版本的对象,大概 你会由于 只生涯了最新版本而痛哭流涕。尚有 就是你对措施做了一些批改,但是批改很少,你只想给远方的同事发一个两个版本之间的区别 文件,如许 可以免于邮箱不足大,网速太慢之类的题目 .为了解 决类似如许 的题目 ,以及诸如天生 补丁文件,汗青 版本批改等,一帮(褒义)在原来 Unix 体系 里很成熟的 SCCS 和 RCS 的根本 上,开拓了 CVS。(SCCS:Source Code Control System,RCS:Revision Control System)。 
CVS 的根本 事变 思绪 是如许 的:在一台做事器上成立 一个客栈,客栈里可以寄放 很多 差别 项方针源措施。由客栈管理 员同一 管理 这些源措施.如许 ,就好象只有一小我私家 在批改文件一样.停止了斗嘴.每个用户在应用 客栈之前,起首 要把客栈里的项目文件到内地 。
用户做的任何批改起首 都是在内地 举办,然后用 cvs 下令 举办提交,由 cvs 客栈管理 员同一 批改.如许 就可以做到跟踪文件变动,斗嘴独霸等等. 
由于 CVS 是典范 的 C/S 结构的软件,因此它也分成做事器端和客户端两部分 。不外 大多数CVS 软件都把它们合二为一了。我们这里就判别 从做事器和客户端的角度讨论cvs的应用 。 
 
Cvs做事器安装 
 
起首 确保体系 安装有cvs: 
[root@mail xinetd.d]# rpm -qa|grep cvs 
cvs-1.11.1p1-3 
假如 下令 输出类似于上面的输出则阐发 体系 已经安装有cvs,不然 就必要 从安装光盘中安装cvs的rpm包。 
 
一 创建 CVS属主用户: 
# useradd -d /cvsroot cvs 
# chmod 771 /cv sroot 
 
linux怎么读光盘二、成立 CVS客栈(初始化cvs) 
 
# su cvs 
$ cvs -d /cvsroot init 
$exit 
 
四、启动cvs做事器 
 
在/etc/xinetd.d/目次 下创建 文件cvspserver,内容如下: 
# default: on 
# description: The cvs server sessions; 
 
service cvspserver 
socket_type = stream 
wait = no 
user = root 
server = /usr/bin/cvs 
server_args = -f --allow-root=/cvsroot pserver 
log_on_failure += USERID 
only_from = 192.168.0.0/24 
此中 only_from是用来限建造访 的,可以按照 实际 情况不要可能批改。 
批改该文件权限: 
# chmod 644 cvspserver 
然后重新启动xinetd: 
# /etc/rc.d/init.d/xined restart 
然后观察 cvs做事器是否已经运行: 
[root@mail xinetd.d]# netstat -lnp|grep 2401 
tcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN 7866/xinetd 
则阐发 cvs做事器已经运行。 
 
五、创建 用来拜访cvs的用户 
 
前面创建 的cvs用户是cvs客栈管理 用户,而为了让用户拜访则还必要 一个拜访用户: 
# useradd cvspub 
# usemod -G cvs cvspub 
这里添加了一个用户cvspub,并且 将该用户添加到cvs组中。 
 
六、管理 cvs做事器 
 
管理 cvs 做事器.做事器可以用了,如今 人人 最关怀 的就是怎样 管理 做事器,比如 ,我想让一些人有读和/或写 CVS 客栈的权限,但是不想给它体系 权限怎么办呢?不难,cvs初始化收场 以后,在管理 员用户(这里是cvs用户)的主目次 里有一个 CVSROOT 目次 ,这个目次 里有三个设置 文件:passwd, readers, writers。我们可以通过设置这三个文件来设置 CVS 做事器,下面判别 先容 这几个文件的作用: 
passwd:cvs 用户的用户列表文件,它的技俩很象 shadow 文件: 
{cvs 用户名}:[加密的口令]:[等效体系 用户名] 
假如 你渴望 一个用户只是 cvs 用户,而不是体系 用户,那么你就要设置这个文件,方才 安装完之后这个文件也许不存在,你必要 以cvs管理 员身份(su cvs)用户手工创建 ,固然 要服从 上面技俩; 
第二个字段是该用户的加密口令,就是用 crypt (3) 加密的,你可以本身 写一个措施来做加密,也可以用两个偷懒的行动 :先创建 一个体系 用户,名字和 cvs 用户一样,口令就是预备给它的 cvs 用户口令,创建 完之后从 /etc/shadow 把该用户第二个字段拷贝过来,然后 再把这个用户删除.这个行动 敷衍 数量 少的用户比拟 利便 ,人一多就不适宜 了,并且 尚有 斗嘴条件(race condition)的安详隐患,还要 root 权限,着实 不怎么样,不外 权益之计罢了 ;其它一个行动 就是操作apche的htpasswd下令 创建 passwd用户,添加用户只必要 htpasswd passwd username即可添加用户到passwd文件中,不外 必要 在文件中对应行的末了 添加一个":"冒号和对应的等效体系 用户名;最好的就是本身 编写一个措施潦攀? 刺焐? 这个passwd文件了。 
第三个字段就是等效体系 用户名,实际 上就是赋与一个 cvs 用户一个等效的体系 用户的权限,看下面的例子你就明白 它的功能了。 
readers:有 cvs 读权限的用户列表文件,就是一个一维列表。在这个文件中的用户对 cvs 
只有读权限。 
writers:有 cvs 写权限的用户的列表文件,和 readers 一样,是一个一维列表。在这个文件中的用户对 cvs 有写权限。 
上面三个文件在缺省安装的时间 也许都不存在,必要 我们本身 创建 ,好吧,如今 照样 让我们用一个例子来解说吧.假设我们有下面几个用户必要 应用 cvs: 
cvsuser1, cvsuser2, henry, betty, anonymous 
此中 laser 和 gumpwu 是体系 用户,而henry, betty, anonymous 我们都不想给体系 用户权限,并且 betty 和 anonymous 都是只读用户,并且 anonymous 更是连口令都没有。 
然后编辑 cvs 管理 员家目次 里 CVSROOT/passwd 文件,介入下面几行: 
 
laser:$xxefajfka;faffa33:cvspub 
gumpwu:$ajfaal;323r0ofeeanv:cvspub 
henry:$fajkdpaieje:cvspub 
betty:fjkal;ffjieinfn/:cvspub 
anonymous::cvspub 
留意 :上面的第二个字段(离开 符为 :)是密文口令,你要用措施可能用我的土办法天生 。 
编辑 readers 文件,介入下面几行: 
anonymous 
betty 
编辑 writer 文件,介入下面几行: 
laser 
gumpwu 
henry 
如许 就 ok 了,你再用几个用户判别 登岸 测试,就会创造统统 都 ok 了。这内里 的原理和阐发 我想就不多说了,着实 很大略 ,和体系 管理 用户的观念 是一样的。 
 
七、成立 新的CVS项目 
 
一样平常 我们都已经有一个或多个项目了,如许 我们可以用下面步调 天生 一个新的CVS项目。 
将一个工程文件置于CVs中举办版本独霸,在CVS 术语中称作导入(import)。从名字上就可以看出,在导入前必要 为此作些预备事变 。 
输入操纵 的根本 哀求 是有个"干净"的目次 结构。"干净"的意思是不必要 版本独霸的文件都被移走了(如编译天生 的文件,备份文件等等)。假如 工程已经起头一段工夫了,这就显得很重要 。在目次 中大概 有些是不操持 将其置于版本独霸下的文件,但是又想将他们放在这里,这种情况下,你要在输入之前将它们移走,然后再移返来 。 
留意 的是CVS 认为 空目次 是不存在的。假如 想增进一个既不包孕 文件又不包孕 子目次 的目次 ,必要 在其下创建 一个哑文件。提议你创建 一个名为 的文件,其内容为对目次 的扼要 阐发 。 
进入到已有项方针目次 ,比如 叫 cvstest: 
$cd cvstest 
运行下令 将项目文件导入到cvs客栈中: 
$cvs import -m "this is a cvstest project" cvstest v_0_0_1 start 
阐发 :import 是cvs的下令 之一,表示向cvs客栈输入项目文件. 
-
m参数后头的字串是刻画 文本,对项目举办刻画 ,假如 不加 -m 参数,那么cvs会主动 运行一个编辑 器(一样平常 是vi,但是可以通过批改环境 变量EDITOR来改成你喜好 用的编辑 器)让你输入信息,cvstest 是项目名称(实际 上是客栈名,在CVS做事器上会存储在以这个名字定名 的客栈里) 
v_0_0_1是这个分支的总符号 .没啥用(或曰不常用) 
start 是每次 import 标识文件的输入条理 的符号 ,没啥用。 
如许 我们就成立 了一个CVS客栈了,然后,我们可以把这个测试项方针文件删除,尝试怎样 从客栈获取文件这会在后头的客户端文章举办阐发 。 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。