Chinaunix首页 | 论坛 | 博客
  • 博客访问: 947337
  • 博文数量: 276
  • 博客积分: 4182
  • 博客等级: 上校
  • 技术积分: 4486
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-17 21:14
文章分类

全部博文(276)

文章存档

2014年(9)

2013年(132)

2012年(135)

分类: 系统运维

2013-05-08 10:37:39

简介

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

二、成立 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 认为 空目次 是不存在的。假如 想增进一个既不包孕 文件又不包孕 子目次 的目次 ,必要 在其下创建 一个哑文件。提议你创建 一个名为 README.txt 的文件,其内容为对目次 的扼要 阐发 。
进入到已有项方针目次 ,比如 叫 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客栈了,然后,我们可以把这个测试项方针文件删除,尝试怎样 从客栈获取文件这会在后头的客户端文章举办阐发 。

在Win2k上安装和应用 CVS
1.预备有关软件:
从 下载做事器 cvs-1.10.8NT.exe.zip
从 下载客户端 WinCvs11b16.zip
用winzip把cvs-1.10.8NT.exe.zip解压到d:cvs。
解压并安装wincvs.
2.把路径 d:cvs 加到path环境 变量中。
具体 行动 :点选"我的",单击右键,选属性,点环境 变量按钮。
3.成立 CVS存储目次 。
打开一个dos窗口,键入"cvs -d :local:d:cvsroot init",然后你会创造d:cvs下面多了一个root子目次 。
4.注册CVS做事
在dos窗口中,键入"ntservice -i d:cvsroot",屏幕表现 "CVS NT Service Installed successfully",打开独霸面板中的做事,你会创造多了一个"CVS NT Service"做事
用"net start cvs"启动cvs做事。 用"net stop cvs"封闭 cvs做事。
5.设置暗码
新建一个空缺 的passwd文件,放到d:cvsrootcvsroot目次 下。用pwgen.exe天生 暗码 。把用户名和暗码 写到passwd文件,譬喻:test:OuIgxgsUZH48g
6.应用 wincvs
选Admin->Perferences,设CVSROOT为":pserver:test@server:d:cvsroot",server为作为做事器的打定机的名称。test为用户名。
7.登岸
选Admin->login,输入暗码 登岸 。
8.导入模块
假设要管理 的代码已经存在于c:source目次 ,选弹出菜单上的import module,选择目次 c:source,输入模块名"test",wincvs就会把该目次 导入到模块test中。
9.导出模块
选Create->checkout module,输入模块名和相应的目次 就可以了。
10。批改文件
选中要批改的文件,点批改钮(笔图标)。然后批改文件,末了 选弹出菜单上的commit selection,批改就被提交了。

CVS NT做事器安装指南
下载所在:;
运行 cvsnt_1.11.1.2.exe
点两次“Next”跳过“Welcome”界面起头安装
点“Yes”经受 License
点“Next”用默认的Typical安装
选“Yes”并点“Finish”,重新启动

到桌面,在“我的”按右键,点“属性”
点“高等 ”,点“环境 变量”
选择“体系 变量”中的Path,点“编辑 ”
在变量值后加“;C:Program FilesCVS for NT”(引号不要介入)
点“断定 ”
再“断定 ”

进入独霸面板,双击“CVS for NT”
点“Install”安装CVSNT做事
Install按钮会变无效,Uninstall变有效
点“Add”,输入“d:cvsroot”,点“OK”
会提问是否创建 目次 ,回答 “是”
点“Start”启动CVSNT做事

在d:cvsrootCVSROOT目次 下创建 一个文件名为passwd的文件(没有扩张名)
(怎么创建 没有扩张名的文件:
点资源管理 器菜单“器材”->“文件夹选项”
点“文件范例 ”
找到并选中“TXT 文本文档”,点“高等 ”
选中“始终表现 扩张名”,点“断定 ”,然后“封闭 ”)

在d:cvsrootCVSRTOO下新建文本文件
编辑 该文件,把下面三行
user1:user1encryptedpassword (加密暗码 是用CVSNT带的器材“Generate Passwords”天生 的,安装后菜单里有)
user2:user2encryptedpassword
user3:user3encryptedpassword
介入,生涯 退出,然后把该文件更名 为passwd(把扩张名去掉)

加3个用户
user1暗码 同上面设的
user2暗码 同上面设的
user3暗码 同上面设的


安装wincvs(下载所在:)后运行wincvs

点“Admin”->Preferences
CVSROOT 改为 user1@myservername:d:cvsroot
Authentication 选择 "passwd" file on the cvs server
Use vesion 选择 cvs 1.10 (Standard)

然后“Admin”->“Login”,乐成 的返回码为0
然后可以Import一个module

然后可以checkout这个module,假如 checkout到同一个目次 ,要把本来 的目次 更名 或删除
点Create->Checkout module
module name 填 mymodulename
Local folder如 d:user1
在Globals页内里 把 Checkout read-only 不选中
其余的不管,点“断定 ”即可

checkout之前假如 没有login,必需 先login一次,除非事变 目次 ,不然 不必要 重新login
阅读(2760) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~