ubuntu下cvs的安装、配置与使用

cvs的安装方式大致有两种
一种是cvs+cvsd,另一种是cvs+xinetd,我选择的是cvs+xinetd,这种做法比较节省资源,xinetd是一个后台服务管理程序,除了管理cvs之外还可以管理其它的后台服务,理论上讲会比较节省资源一些。

环境

os:ubuntu 12.04
cvs:(CVS) 1.12.13 (client/server)
xinietd:2.3.14

安装过程如下

1.安装相关包
1.1.安装cvs和xinetd

jim@jim-laptop:~ sudoaptgetinstallcvscvsdxinetdjim@jimlaptop:  ……

注意:刚才安装cvsd并不是需要cvsd在后台运行,而是因为cvsd自带的几个小工具挺好使,可以省去不少力气,装完了把cvsd服务删除就可以了,如下所示

jim@jim-laptop:~ sudo/etc/init.d/cvsdstopjim@jimlaptop:  sudo rm /etc/init.d/cvsd
jim@jim-laptop:~$

1.2.安装文件介绍
cvs会安装到这么几个地方

/usr/bin/cvs //执行文件
/etc/cvsd/ //cvsd存放配置文件的地方,因为没有用到cvsd,因此这个目录可以删除,不删留着也不影响
/var/lib/cvsd //cvs的主目录,所有的执行文件,临时文件都在这里,也是RootJail变量默认指向的目录,我建议不要改默认的RootJail,如果希望把repository放到别的地方,可以考虑使用符号连接的办法实现。

2.生成库
2.1.生成repositories目录
/var/lib/cvsd是默认的起始目录,代码库应该放到这里。
注意:如果你希望把代码库放到别处,我建议你可以在cvs搭建成功之后用符号链接迁移到别处,目前暂时别乱改,否则出现问题不容易找到解决办法。

假设代码库的名字叫做 cvs-root

ncut@ncut-virtual-machine:~ sudomkdir/var/lib/cvsd/cvsroot//ncut@ncutvirtualmachine:  sudo chown ncut:cvsd /var/lib/cvsd/cvs-root -R //修改目录的所有者为当前用户
ncut@ncut-virtual-machine:~$ sudo chmod ug+rwx /var/lib/cvsd/cvs-root -R //修改cvs-root目录的读写权限,设置为除了所有者之外,别的用户也可以读写

ok,现在/var/lib/cvsd/cvs-root已经拥有了写入权限,可以执行个小测试

ncut@ncut-virtual-machine:~ touch/var/lib/cvsd/cvsroot/ancut@ncutvirtualmachine: 

没提示出错就说明可以了

2.2.初始化repositories
执行如下代码

ncut@ncut-virtual-machine:~ cvsd/var/lib/cvsd/cvsrootinitncut@ncutvirtualmachine:  ls /var/lib/cvsd/cvs-root
CVSROOT

2.3.为cvs-root添加用户并初始化密码

ncut@ncut-virtual-machine:~ cvsdpasswd/var/lib/cvsd/cvsrootncut/usr/sbin/cvsdpasswd:addinguserjimto/var/lib/cvsd/cvsroot/CVSROOT/passwdEnternewpassword:<123>Retypenewpassword:<123>ncut@ncutvirtualmachine: 

2.4.配置代码库的config文件
我这里执行完init之后,cvs-root/CVSROOT里的文件都是只读的,必须增加改变文件属性才能编辑

ncut@ncut-virtual-machine:~ sudochmod+rw/var/lib/cvsd/cvsroot/CVSROOT/ncut@ncutvirtualmachine: 
ncut@ncut-virtual-machine:~$ gedit /var/lib/cvsd/cvs-root/CVSROOT/config

增加内容如下

SystemAuth=no
PamAuth=no
LockDir=/var/lib/cvsd/tmp/locked #锁目录,这是个绝对路径

创建刚才的锁目录

ncut@ncut-virtual-machine:~ sudomkdir/var/lib/cvsd/tmp/lockedncut@ncutvirtualmachine: 

3.配置xinet.d的配置文件
xinet.d的配置文件在/etc/xinetd.d/目录下,在这个目录下找找有没有一个cvspserver文件,如果已经有了就直接编辑它,如果没有就创建它,
内容如下

service cvspserver
{   #这个花括号一定要另起一行,否则会解析错误
    #主要添加的是加粗部分,12.04默认有该文件
    #端口号
    **port = 2401**
    socket_type = stream
    #协议
    **protocol = tcp**
    #用户名(这里一定要是root或者cvs默认组cvsd,不然会出错!)
    user = cvsd
    wait = no
    **type = UNLISTED**
    #cvs执行文件路径
    server = /usr/bin/cvs
    #这个是cvs服务参数,其中的/var/lib/cvsd/cvs-root是代码库的绝对路径,日后访问cvs的时候也要提供这个路径(如果嫌这个名字太长,可以使用符号链接解决名字太长的问题)
    server_args = -f --allow-root /var/lib/cvsd/cvs-root pserver
    disable = no
}

注意:

a.花括号要独占一行
b.等号前后要有空格
c.如果你和我一样喜欢使用gedit编辑cvs文件的话,就得小心在保存的时候gedit会自动创建一个名为cvs~的备份文件,这样在启动xinetd服务的时候会出现地址已经被占用的警告信息(系统日志中可以看到),解决办法就是把这个cvs~备份文件删除。

5.重启xinetd服务
在重启之前要先看看/etc/services服务里有没有开启cvs服务端口

ncut@ncut-virtual-machine:~cat /etc/services |grep 2401  
cvspserver 2401/tcp   # CVS client/server operations  
cvspserver 2401/udp  
ncut@ncut-virtual-machine:~

ok,已经配置好端口了,现在可以重启xinetd服务了,输入如下命令

ncut@ncut-virtual-machine:~ sudo/etc/init.d/xinetdrestartStoppinginternetsuperserverxinetd[OK]Startinginternetsuperserverxinetd[OK]ncut@ncutvirtualmachine: 

6.连接测试
首先查看端口是否开启

ncut@ncut-virtual-machine:~$ telnet localhost 2401
Trying ::1…
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.

出现上面的字样说明cvs服务器端口已经打开了,如果出现Connection refused的提示,可能表示xinetd配置失败,建议看看系统日志,从中会得到帮助。

注:telnet: Unable to connect to remote host: Connection refused
查看了下端口 netstat -ntpl (tcp端口状态)
补充: netstat -nupl(udp端口状态)
一看才知道自己粗心把之前cvspserver文件中的port写为2410了。
试试使用cvs登录

ncut@ncut-virtual-machine:~ cvsd:pserver:jim@localhost:/var/lib/cvsd/cvsrootloginLogginginto:pserver:jim@localhost:2401/var/lib/cvsd/cvsrootCVSpassword:ncut@ncutvirtualmachine: 

如果什么提示都不出就说明连接成功了

7.把冗长的/var/lib/cvsd/cvs-root改用符号链接简化
讲述一下如何将冗长的/var/lib/cvsd/cvs-root简化成/cvs-root
在xinetd的cvs配置文件 /etc/xinetd.d/cvs

….
server_args = -f –allow-root /var/lib/cvsd/cvs-root pserver
….

server-args参数指向的绝对路径就是连接测试时输入的冗长的代码路路径,把它修改成下面的样子

….
server_args = -f –allow-root /cvs-root pserver
….

然后执行下面的命令

jim@jim-laptop:/ sudolns/var/lib/cvsd/cvsrootcvsrootjim@jimlaptop:/

ok,改完了,再测试一下

jim@jim-laptop:~ cvsd:pserver:jim@localhost:/var/lib/cvsd/cvsrootloginLogginginto:pserver:jim@localhost:2401/cvsrootCVSpassword:jim@jimlaptop: 

ok,连接成功了

8.设置读写权限
还没完事,目前cvs还只是能登录,如果执行cvs add update等操作的时候会出现一错误提示

cvs add “blueprint-demo”
cvs add: cannot mkdir /var/lib/cvsd/cvs-root/blueprint-demo: Permission denied

这是因为目录还没有设置读写权限,执行下面的脚本就可以了

jim@jim-laptop:~ sudousermodaGcvsdjim//jimcvsdjim@jimlaptop:  sudo chmod ug+rwx /var/lib/cvsd/tmp -R //设置临时目录的写入权限
jim@jim-laptop:~ sudochmodug+rwx/var/lib/cvsd/cvsrootR//jim@jimlaptop:  sudo chmod ug+rwx /var/lib/cvsd/cvs-root/CVSROOT/* //设置工程CVSROOT具有读写权限

ok,现在没问题了
[转]http://203.208.39.132/search?q=cache:7mfdk08qmmQJ:jim19770812.blogspot.com/2009/07/ubuntucvs.html+ubuntu+%E4%B9%8Bcvs%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AE&cd=4&hl=zh-CN&ct=clnk&gl=cn&st_usg=ALhdy2-ipIBNhccsmMi9z7phn3KGtnT0tg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值