|
|
最近几天在linux下配置了cvs服务器,并且在windowsXp下配置了wincvs客户端,遇到些问题,学到些东西,也感谢高手给我求助帖子的回复,所以抽空总结一下,本人还是菜鸟,虽然配置成功,但有说的不对的地方还请指正。由于时间有限,所以先整理了服务器部分的第一步:建立cvs服务。明天争取写第二步:cvs用户管理。
linux下配置cvs服务器
一 建立cvs服务
1. 一般linux都自带了cvs的server/client,所以先检查一下。在终端输入cvs -v,得到以下结果:
[root@zhangyf~]#cvs -v
Concurrent Versions System(CVS) 1.11.21(client/server)
......
说明cvs已经是安装好的了。
2. 配置service cvspserver,最开始我在网上的论坛里看的帖子都是说要在/etc/xinetd.d下新建一个cvspserver,然后自己配置,
并给出了具体配置的文档,还要配置环境变量,所以我最开始也是这样做的,有些麻烦。可是后来发现这个路径下本身有一个cvs
文件,于是打开看看,发现跟网上给出的cvspserver配置文件差不多,再去网上查查,原来我用的linux版本是fedora5,这个版本
已经自带了配好的cvs,所以不用再手动添加cvspserver,也不用配置什么环境变量。只需vi /etc/xinetd.d/cvs,将disable默认
的yes改为no,如下:
service cvspserver
{
disable =no
port =2401
socket_type =stream
protocol =tcp
wait =no
user =root
passenv =PATH
server =/usr/bin/cvs
env =HOME=/var/cvs
server_args =-f --allow-root=/var/cvs pserver
# bind =127.0.0.1
}
最开始由于是初步学习,所以server和server_args就取的默认值,后来又看了些帖子,如果有很多项目要放入cvs的话,而不同
的项目下不同的人员要有不同的权限,则需要多仓库,所以应该每个仓库一个server_args,即假设有两个仓库project1和project2,
server_args这行就应该这样配置:
server_args =-f --allow-root=/var/cvs/project1 --allow-root=/var/cvs/project1 pserver
可是要是仓库不止两个,有很多呢?server_args对于长度是有限制的,所以不能这样一直无限制的添加新的项目,这时我们需要
做如下配置:
service cvspserver
{
disable =no
port =2401
socket_type =stream
protocol =tcp
wait =no
user =root
passenv =PATH
server =/var/cvs/cvs.run
env =HOME=/var/cvs
# bind =127.0.0.1
}
即修改server,自己写一个cvs.run脚本,然后把server_args去掉,或用#注释掉。
下面就自己写一个cvs.run吧:
vi /var/cvs/cvs.run
#!/bin/bash
/usr/bin/cvs -f \
--allow-root=/var/cvs/project1 \
--allow-root=/var/cvs/project2 pserver
然后保存关闭。
此处要注意了,上边的cvs.run中的后三行本来是一整行,即一条语句,但是我想大概是排版问题或是为了看起来更有条理,分成了
三行写,此时系统会认为这是三条错误的语句,所以后面要加了空格和连字符“\”,这样就没问题了。最开始我没加,到最后
登录输入密码后提示 unrecognized auth response from 192.168.0.134(我服务器的ip)...... ,郁闷了一下,后来
telnet一下,即在终端telnet 192.168.0.134 2401,发现后面提示cvs.run的第三、四和五行错误,于是添加连接符。以此类推,
后面可以不断加入新的仓库了。
3. 下面创建cvs组群
[root@zhangyf~]#groupadd cvs
4.建立cvs组的用户cvs和所属的目录
[root@zhangyf~]#useradd -g cvs -d /var/cvs cvs
注意这里的路径,要和上边的一致,因为我在第二步中都写得系统默认的/var/cvs,所以这里要写这个路径。
5.为cvs用户添加密码
[root@zhangyf~]#passwd cvs
输入两遍密码。
6.创建上边配置的两个项目project1和project2
[root@zhangyf~]#cd /var/cvs
[root@zhangyf~]#mkdir project1
[root@zhangyf~]#mkdir project2
7.创建仓库
[root@zhangyf~]#cvs -d /cvs/root/project1 init
[root@zhangyf~]#cvs -d /cvs/root/project2 init
8.修改文件的拥有者和权限
[root@zhangyf~]#chmod -R 755 /var/cvs
[root@zhangyf~]#chown -R cvs:cvs /var/cvs
9.在/etc/services里查看是否有cvspserver服务,注意名称要一致,默认情况下一般都有,不需要再添加。
cvspserver 2401/tcp #CVS client/server operations
cvspserver 2401/udp #CVS client/server operations
10.看看是否可以启动cvs服务
开始我直接用如下命令启动
[root@zhangyf~]#/etc/init/xinetd restart
出现错误,提示系统找不到xinetd这个文件。又郁闷了一下,于是找原因,原来这个需要自己安装!所以先执行下面语句:
[root@zhangyf~]#yum install xinetd
我第一次安装时很顺利,第二天想在另一台主机上安时就出错,开始以为是电脑问题,后来发现这是一个在线安装,更新
的程序,跟网络状况有关,过了一会试试就又好了。
成功安装后再启动cvs服务
[root@zhangyf~]#/etc/init/xinetd restart
这下应该可以启动了。
11.验证一下cvs服务到底启动没
[root@zhangyf~]#netstat -l | grep cvspserver
应该有如下结果:
tcp 0 0 *:cvspserver *:* LISTEN
说明cvs的2401端口正在监听,恭喜!证明cvs服务启动成功了! |
|