当前位置: 技术问答>linux和unix
★★★★★牛人请进,cvs的配置问题,完全解决问题者再开贴给300分★★★★★
来源: 互联网 发布时间:2015-06-16
本文导语: 我按如下步骤进行配置: 1:我用的是linux redhat9.0 2:建立了cvs用户组 groupadd cvs 3.建立cvs组的cvsroot用户和所属的目录 useradd -g cvs -G cvs -d/home/cvsroot cvsroot 4:为cvsroot用户添加密码 passwd cvsroot 5:改变/home/cvs...
我按如下步骤进行配置:
1:我用的是linux redhat9.0
2:建立了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
文件内容如下:
cvsadmin:cvspassword:cvsroot
8.加入cvs服务(我的redhath9缺省就有cvs服务,所以不用加)
vi /etc/services
cvspserver 2401/tcp #pserver cvs service
cvspserver 2401/udp #pserver cvs service
9.cvs服务由inted来唤起,因此需要改动inetd提供的服务,我的redhat使用的是inetd 方式则在文件/etc/inetd.conf中加入如下的内容:cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/cvsroot pserver
我的redhat9使用的是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
}
10.重新启动inetd或者xinetd:
/etc/rc.d/init.d/xinetd restart
11.检查cvspserver服务是否已经启动
netstat -l |grep cvspserver
结果如下:
tcp 0 0 *:cvspserver *:* LISTEN
以上结果全部通过,但我在客户端登录时:
cvs -d :pserver:cvsadmin@210.42.25.218:/home/cvsroot login
输入密码后:显示如下错误,高手指点我前面有什么配置错误吗??
cvs [login aborted]: Error reading from server 210.42.25.218: 0: No such file or directory
1:我用的是linux redhat9.0
2:建立了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
文件内容如下:
cvsadmin:cvspassword:cvsroot
8.加入cvs服务(我的redhath9缺省就有cvs服务,所以不用加)
vi /etc/services
cvspserver 2401/tcp #pserver cvs service
cvspserver 2401/udp #pserver cvs service
9.cvs服务由inted来唤起,因此需要改动inetd提供的服务,我的redhat使用的是inetd 方式则在文件/etc/inetd.conf中加入如下的内容:cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/cvsroot pserver
我的redhat9使用的是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
}
10.重新启动inetd或者xinetd:
/etc/rc.d/init.d/xinetd restart
11.检查cvspserver服务是否已经启动
netstat -l |grep cvspserver
结果如下:
tcp 0 0 *:cvspserver *:* LISTEN
以上结果全部通过,但我在客户端登录时:
cvs -d :pserver:cvsadmin@210.42.25.218:/home/cvsroot login
输入密码后:显示如下错误,高手指点我前面有什么配置错误吗??
cvs [login aborted]: Error reading from server 210.42.25.218: 0: No such file or directory
|
你的问题我想是:
1。登录时用户名不是你建立的用户名
你建立的用户是cvsroot,可是登录时用的cvsadmin
应该是cvs -d :pserver:cvsroot@210.42.25.218:/home/cvsroot login
2.密码的问题
创建可以登陆cvs服务的用户及密码,需要创建文件passwd
vi /home/cvsroot/CVSROOT/passwd
文件内容如下:
cvsroot:xxxxx:cvsroot
用vi,
$ 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";
假定你设置的cvsroot的密码是"some"
然后输入:
$perl passwdgen.pl "some" 回车即可得到加密密码x,用x替换passwd文件中的xxxxxx
然后
$/etc/rc.d/init.d/xinetd restart重新登录应该没有什么问题了,呵呵,我当时整了一整天才搞定的
1。登录时用户名不是你建立的用户名
你建立的用户是cvsroot,可是登录时用的cvsadmin
应该是cvs -d :pserver:cvsroot@210.42.25.218:/home/cvsroot login
2.密码的问题
创建可以登陆cvs服务的用户及密码,需要创建文件passwd
vi /home/cvsroot/CVSROOT/passwd
文件内容如下:
cvsroot:xxxxx:cvsroot
用vi,
$ 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";
假定你设置的cvsroot的密码是"some"
然后输入:
$perl passwdgen.pl "some" 回车即可得到加密密码x,用x替换passwd文件中的xxxxxx
然后
$/etc/rc.d/init.d/xinetd restart重新登录应该没有什么问题了,呵呵,我当时整了一整天才搞定的
|
安装cvs后服务器和客户端就都安装了,主要是需要配置服务器端:
1.查看是否安装cvs(我的redhat7.3缺省是装了的)
rpm -qa|grep cvs
一般安装在/usr/bin/cvs,如果未安装,到www.cvshome.org下载一个最新的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
文件内容如下:
weiqiong:xxxxxx:cvsroot
chenxu:xxxxxx: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)
1.查看是否安装cvs(我的redhat7.3缺省是装了的)
rpm -qa|grep cvs
一般安装在/usr/bin/cvs,如果未安装,到www.cvshome.org下载一个最新的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
文件内容如下:
weiqiong:xxxxxx:cvsroot
chenxu:xxxxxx: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)
|
root 权限;
CVS软件,请找到相关的rpm,tgz,deb 等包装上,或者到
http://www.cvshome.org/CVS/Dev/code
下载原程序编译安装,这里我不准备介绍它的安装,请参考CVS自身的文档安装.我使用Slackware的tgz包,安装的命令是
#installpkg cvs*.tgz
其他包请参考对应包管理工具的命令.
一定的系统资源,要有一定内存(32M就能工作得很好),要一定的磁盘空间,看你的项目的大小和多少而定.
架设CVS服务器:
建立 CVSROOT 目录,因为这里涉及到用户对CVSROOT里的文件读写的权限问题,所以比较简单的方法是建立一个组,然后再建立一个属于该组的帐户,而且以后有读写权限的用户都要属于该组.假设我们建一个组叫cvs,用户名是cvsroot.建组和用户的命令如下
#groupadd cvs
#adduser cvsroot
生成的用户家目录在/home/cvsroot(根据自己的系统调整)
用 cvsroot 用户登陆,修改 /home/cvsroot (CVSROOT)的权限,赋与同组人有读写的权限:
$chmod 771 . (或者770应该也可以)
注意:这一部分工作是按照文档说明做的,是否一定需要这样没有试验,我会在做试验后在以后版本的教程说得仔细一点.如果您有这方面的经验请提供给我,谢谢.
建立CVS仓库,(仍然是 cvsroot 用户),用下面命令:
$cvs -d /home/cvsroot init
以root身份登陆,修改 /etc/inetd.conf(使用 xinetd 的系统没有此文件)和 /etc/services,
如果用的是 inetd 的系统,在 /etc/inetd.conf 里加入:
cvsserver stream tcp nowait root /usr/bin/cvs cvs -f --allow-root=/home/cvsroot pserver
说明:上面的行是单独一整行,/usr/bin/cvs 应该是你的cvs版本的命令路径,请根据自己的系统调整./home/cvsroot 是你建立的CVSROOT的路径,也请根据上面建立目录的部分的内容做调整.
如果是使用 xinetd 的系统,需要在 /etc/xinetd.d/ 目录下创建文件 cvspserver(此名字可以自己定义),内容如下:
# default: on
# description: The cvs server sessions;
service cvsserver
{
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
在/etc/services里加入:
cvsserver 2401/tcp
说明:cvsserver 是任意的名称,但是不能和已有的服务重名,也要和上面修改 /etc/inetd.conf 那行的第一项一致.这里我用的是 CVS 的口令认证方式,CVS 还有其他认证方式,我没有做试验,如果您有经验,请补充,谢谢.
添加可以使用 CVS 服务的用户到 cvs 组:
以 root 身份修改 /etc/group,把需要使用 CVS 的用户名加到 cvs 组里,比如我想让用户 laser 和gumpwu 能够使用 CVS 服务,那么修改以后的 /etc/group 应该有下面这样一行:
cvs:x:105:laser,gumpwu
在你的系统上GID可能不是105,没有关系.主要是要把laser和gumpwu用逗号分隔开写在最后一个冒号后面.当然,象RedHat等分发版有类似linuxconf这样的工具的话,用工具做这件事会更简单些.
重起inetd使修改生效:
#killall -HUP inetd
如果使用的是 xinetd 的系统:
# /etc/rc.d/init.d/xined restart
CVS软件,请找到相关的rpm,tgz,deb 等包装上,或者到
http://www.cvshome.org/CVS/Dev/code
下载原程序编译安装,这里我不准备介绍它的安装,请参考CVS自身的文档安装.我使用Slackware的tgz包,安装的命令是
#installpkg cvs*.tgz
其他包请参考对应包管理工具的命令.
一定的系统资源,要有一定内存(32M就能工作得很好),要一定的磁盘空间,看你的项目的大小和多少而定.
架设CVS服务器:
建立 CVSROOT 目录,因为这里涉及到用户对CVSROOT里的文件读写的权限问题,所以比较简单的方法是建立一个组,然后再建立一个属于该组的帐户,而且以后有读写权限的用户都要属于该组.假设我们建一个组叫cvs,用户名是cvsroot.建组和用户的命令如下
#groupadd cvs
#adduser cvsroot
生成的用户家目录在/home/cvsroot(根据自己的系统调整)
用 cvsroot 用户登陆,修改 /home/cvsroot (CVSROOT)的权限,赋与同组人有读写的权限:
$chmod 771 . (或者770应该也可以)
注意:这一部分工作是按照文档说明做的,是否一定需要这样没有试验,我会在做试验后在以后版本的教程说得仔细一点.如果您有这方面的经验请提供给我,谢谢.
建立CVS仓库,(仍然是 cvsroot 用户),用下面命令:
$cvs -d /home/cvsroot init
以root身份登陆,修改 /etc/inetd.conf(使用 xinetd 的系统没有此文件)和 /etc/services,
如果用的是 inetd 的系统,在 /etc/inetd.conf 里加入:
cvsserver stream tcp nowait root /usr/bin/cvs cvs -f --allow-root=/home/cvsroot pserver
说明:上面的行是单独一整行,/usr/bin/cvs 应该是你的cvs版本的命令路径,请根据自己的系统调整./home/cvsroot 是你建立的CVSROOT的路径,也请根据上面建立目录的部分的内容做调整.
如果是使用 xinetd 的系统,需要在 /etc/xinetd.d/ 目录下创建文件 cvspserver(此名字可以自己定义),内容如下:
# default: on
# description: The cvs server sessions;
service cvsserver
{
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
在/etc/services里加入:
cvsserver 2401/tcp
说明:cvsserver 是任意的名称,但是不能和已有的服务重名,也要和上面修改 /etc/inetd.conf 那行的第一项一致.这里我用的是 CVS 的口令认证方式,CVS 还有其他认证方式,我没有做试验,如果您有经验,请补充,谢谢.
添加可以使用 CVS 服务的用户到 cvs 组:
以 root 身份修改 /etc/group,把需要使用 CVS 的用户名加到 cvs 组里,比如我想让用户 laser 和gumpwu 能够使用 CVS 服务,那么修改以后的 /etc/group 应该有下面这样一行:
cvs:x:105:laser,gumpwu
在你的系统上GID可能不是105,没有关系.主要是要把laser和gumpwu用逗号分隔开写在最后一个冒号后面.当然,象RedHat等分发版有类似linuxconf这样的工具的话,用工具做这件事会更简单些.
重起inetd使修改生效:
#killall -HUP inetd
如果使用的是 xinetd 的系统:
# /etc/rc.d/init.d/xined restart