ubuntu下安装和配置CVS

网上ubuntu下安装CVS的资料挺多,不过尝试过之后基本都上跑不起来。经过了一下午+一晚上的努力,总算是配置成功了,我把详细过程和中间遇到的问题都记录下来,于是就有了这篇文章。

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

环境
os:ubuntu 9.04
cvs:(CVS) 1.12.13 (client/server)
xinietd:2.3.14
安装过程如下

1.安装相关包
1.1.安装cvs和xinetd
jim@jim-laptop:~$ sudo apt-get install cvs cvsd xinetd
jim@jim-laptop:~$......
jim@jim-laptop:~$......
jim@jim-laptop:~$......
注意:刚才安装cvsd并不是需要cvsd在后台运行,而是因为cvsd自带的几个小工具挺好使,可以省去不少力气,装完了把cvsd服务删除就可以了,如下所示
jim@jim-laptop:~$ sudo /etc/init.d/cvsd stop
jim@jim-laptop:~$ 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
jim@jim-laptop:~$ sudo mkdir /var/lib/cvsd/cvs-root      //创建代码库目录
jim@jim-laptop:~$ sudo chown jim:cvsd /var/lib/cvsd/cvs-root -R  //修改目录的所有者为当前用户
jim@jim-laptop:~$ sudo chmod ug+rwx /var/lib/cvsd/cvs-root -R  //修改cvs-root目录的读写权限,设置为除了所有者之外,别的用户也可以读写
ok,现在/var/lib/cvsd/cvs-root已经拥有了写入权限,可以执行个小测试
jim@jim-laptop:~$ touch /var/lib/cvsd/cvs-root/a
jim@jim-laptop:~$ 
没提示出错就说明可以了

2.2.初始化repositories
执行如下代码
jim@jim-laptop:~$ cvs -d /var/lib/cvsd/cvs-root init
jim@jim-laptop:~$ ls /var/lib/cvsd/cvs-root
CVSROOT
2.3.为cvs-root添加用户并初始化密码
jim@jim-laptop:~$ cvsd-passwd /var/lib/cvsd/cvs-root jim
/usr/sbin/cvsd-passwd: adding user 'jim' to '/var/lib/cvsd/cvs-root/CVSROOT/passwd'
Enter new password: <输入密码123>
Retype new password: <重复输入密码123>
jim@jim-laptop:~$
2.4.配置代码库的config文件
我这里执行完init之后,cvs-root/CVSROOT里的文件都是只读的,必须增加改变文件属性才能编辑
jim@jim-laptop:~$ sudo chmod +rw /var/lib/cvsd/cvs-root/CVSROOT/*
jim@jim-laptop:~$
jim@jim-laptop:~$ gedit /var/lib/cvsd/cvs-root/CVSROOT/config
增加内容如下
SystemAuth=no
PamAuth=no
LockDir=/var/lib/cvsd/tmp/locked #锁目录,这是个绝对路径
创建刚才的锁目录
jim@jim-laptop:~$ sudo mkdir /var/lib/cvsd/tmp/locked
jim@jim-laptop:~$
3.配置xinet.d的配置文件
xinet.d的配置文件在/etc/xinetd.d/目录下,在这个目录下找找有没有一个cvs文件,如果已经有了就直接编辑它,如果没有就创建它,
内容如下
 
 
    service cvspserver
    {   #这个花括号一定要另起一行,否则会解析错误
        #端口号
        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服务端口
jim@jim-laptop:~$ cat /etc/services |grep 2401
cvspserver 2401/tcp   # CVS client/server operations
cvspserver 2401/udp
jim@jim-laptop:~$ 
ok,已经配置好端口了,现在可以重启xinetd服务了,输入如下命令

jim@jim-laptop:~$ sudo /etc/init.d/xinetd restart
 * Stopping internet superserver xinetd                                  [ OK ] 
 * Starting internet superserver xinetd                                  [ OK ] 
jim@jim-laptop:~$ 
6.连接测试
首先查看端口是否开启
jim@jim-laptop:~$ telnet localhost 2401
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

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

试试使用cvs登录
jim@jim-laptop:~$ cvs -d :pserver:jim@localhost:/var/lib/cvsd/cvs-root login
Logging in to :pserver:jim@localhost:2401/var/lib/cvsd/cvs-root
CVS password: 
jim@jim-laptop:~$ 
如果什么提示都不出就说明连接成功了

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:/$ sudo ln -s /var/lib/cvsd/cvs-root cvs-root
jim@jim-laptop:/$ 
ok,改完了,再测试一下
jim@jim-laptop:~$ cvs -d :pserver:jim@localhost:/var/lib/cvsd/cvs-root login
Logging in to :pserver:jim@localhost:2401/cvs-root
CVS password: 
jim@jim-laptop:~$ 
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:~$ sudo usermod -a -G cvsd jim  //将jim用户加入cvsd用户组
jim@jim-laptop:~$ sudo chmod ug+rwx /var/lib/cvsd/tmp -R //设置临时目录的写入权限
jim@jim-laptop:~$ sudo chmod ug+rwx /var/lib/cvsd/cvs-root -R //设置工程目录的写入权限
jim@jim-laptop:~$ 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、付费专栏及课程。

余额充值