Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1354587
  • 博文数量: 334
  • 博客积分: 10302
  • 博客等级: 上将
  • 技术积分: 2986
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-12 10:17
文章分类

全部博文(334)

文章存档

2013年(1)

2012年(9)

2011年(4)

2010年(10)

2009年(24)

2008年(64)

2007年(72)

2006年(150)

我的朋友

分类: LINUX

2006-11-17 18:17:48

手头的文档越来越多,时间长了各个电脑上都有,最后也搞不清楚究竟哪个是最终确认版了,为了解决这个问题,想到了CVS版本管理工具,早知其名,却从未使用过。
 
经过几天断断续续的努力,碰到不少问题,也走了不少弯路,最终还是在Gentoo上安装成功了。
 
我的服务器端用的是Gentoo Linux平台
 
客户端则是Windows XP平台
 
起初在网上找了些资料,看到的都是如何安装和配置CVS的,安装比较简单,但远程连接的时候总是报"Connection reset by peer"错,试了N次均以失败而告终,最后无意中看到一遍关于CVS本地和远程所用服务的区别,原来远程用的是CVSD。难怪我折腾了那么时间总是搞不定,急急忙忙安装上cvsd,但服务还启动出错,无奈之下,重启系统,但问题依旧。细细对照网上高手们的安装手稿,原来是对他们的设置没有深刻理解,依样画葫芦都没画成功。CVS和CVSD在使用端口上是有冲突的,需要把CVS的服务先停止。重新分析后,再按照自己的实际情况进行了修改,结果OK。以下是网上各位高手安装手稿的摘录(非本人原创)。
 
CVSD的安装配置
1. installation
代码:
# emerge cvsd
2. setup cvs root
代码:
# cvs -d /var/lib/cvsd/root init
3. edit cvsd.conf, use whatever editor you like. make sure Jailroot line is commented and Repos is pointing the real directory.
代码:
# vi /etc/cvsd/cvsd.conf
cvsd.conf:
#RootJail /var/lib/cvsd
Repos /var/lib/cvsd/root
4. add user. mine is tester.
代码:
# cvsd-passwd /var/lib/cvsd/root tester
5. create readers and writers file, and add 'tester' into writers.
代码:
# touch /var/lib/cvsd/root/CVSROOT/readers
# chown cvsd:cvsd /var/lib/cvsd/root/CVSROOT/readers
# touch /var/lib/cvsd/root/CVSROOT/writers
# chown cvsd:cvsd /var/lib/cvsd/root/CVSROOT/writers
# vi /var/lib/cvsd/root/CVSROOT/writers
6. apply permissions
代码:
# chown -R cvsd:cvsd /var/lib/cvsd
#chmod -R 775 /var/lib/cvsd
7. restart cvsd
代码:
# /etc/init.d/cvsd restart
 
CVS的安装
安装cvs后服务器和客户端就都安装了,主要是需要配置服务器端:
1.查看是否安装cvs(我的redhat7.3缺省是装了的)
rpm -qa|grep cvs
一般安装在/usr/bin/cvs,如果未安装,到
下载一个最新的rpm安装即可
2.建立cvs用户组,便于管理cvs用户
groupadd cvs
3.建立cvs组的cvsroot用户和所属的目录
useradd -g cvs -G cvs -d /home/cvsroot cvsroot
4.为cvsroot用户添加密码
passwd cvsroot
5.改变/home/cvsroot的目录属性
chmod 775 /home/cvsroot
6.初始化cvs源代码库,此操作生成目录/home/cvsroot/CVSROOT,其下为一些初始化文件
cvs -d /home/cvsroot init
7.创建可以登陆cvs服务的用户及密码,需要创建文件passwd
vi /home/cvsroot/CVSROOT/passwd
文件内容如下:
weiqiongxxxxx:cvsroot
chenxuxxxxx:cvsroot
此文件的意思是weiqiong和chenxu两个用户可以登陆cvs服务器,登陆后其权限为用户cvsroot的权限
注意:cvs用户和服务器用户是可以不一样的
8.xxxxxx为密码,由以下文件生成:
vi /home/cvsroot/passwdgen.pl
文件内容:
#!/usr/bin/perl
srand (time());
my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))";
my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);
my $plaintext = shift;
my $crypttext = crypt ($plaintext, $salt);
print "${crypttext}\n";
9.如果需要密码为:some,则敲入:
passwdgen.pl "some"
回车即可得到加密密码,用其替换passwd文件中的xxxxxx
10.加入cvs服务(我的redhath7.3缺省就有cvs服务,所以不用加)
vi /etc/services
cvspserver 2401/tcp #pserver cvs service
cvspserver 2401/udp #pserver cvs service
11.cvs服务由inted来唤起,因此需要改动inetd提供的服务,如果你的redhat使用的是inetd 方式则在文件/etc/inetd.conf中加入如下的内容:cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/cvsroot pserver
我的redhat7.3使用的是xinetd方式,所以在xinetd.d目录下添加需要启动的服务:
cd /etc/xinetd.d
vi cvspserver
文件内容:
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvsroot pserver
log_on_failure += USERID
}
12.重新启动inetd或者xinetd:
/etc/rc.d/init.d/xinetd restart
13.检查cvspserver服务是否已经启动
netstat -l |grep cvspserver
应该有如下结果:
tcp 0 0 *:cvspserver *:* LISTEN
14.试用:
cvs -d :pserver:weiqiong@202.204.114.37:/home/cvsroot login
敲入命令回车后提示输入weiqiong的密码,你按照自己设置的密码输入,如果没有什么错误信息出现就是成功了(我的机器IP地址是202.204.114.37,也可以用localhost)

阅读(1086) | 评论(0) | 转发(0) |
0

上一篇:下雨了

下一篇:考试终于暂时告一段落

给主人留下些什么吧!~~