cygwin 上配置cvs +pserver
〇.必备环境:
cygwin软件 我使用的是cygwin-1.5.19-4 完全安装
inetd 守护进程软件 如果没有就安装inetutils(inetd)
cvs 版本控制软件 如果没有网上找吧 哈哈
()
一.软件包安装
首先如果你安装的cygwin足够全,那么里面一定有了cvs,inetd
可以到/usr/sbin目录下看看是否有inetd.exe
到/usr/bin目录下看看是否有cvs.exe
在cygwin中我们将使用inetd.exe 守护进程来开启网络服务(cvspsever服务)
如果很幸运都有,你就不用装啦
不过安装也不麻烦:)
举例说明cvs安装:
#tar -zxvf cvs-1.11.23.tar.gz
#cd cvs-1.11.23
#./configure
#make
#make install
搞定!
二.设置cygwin帐户,环境,开启inetd服务
1.安装好了Cygwin后,在windows下建立一个cvsroot的用户。这个用户需要是本地用户,不要是域用户,
确定在Cygwin/home目录下有cvsroot户。如果没有切换windows登录到这个用户下,运行cygwin就可以了。
2.Cygwin环境下,运行iu-config
3.运行 mkpasswd -l > /etc/passwd
将windows用户导入到Cygwin中
4.运行inetd服务。
运行以下命令
设置windows环境变量:CYGWIN=ntsec。将cygwin/bin加入到PATH中。
在cygwin中运行
cygrunsrv -I inetd -d " CYGWIN inetd " -p /usr/sbin/inetd -a -d -e CYGWIN=ntsec
cygrunsrv -S inetd
就可以在windows服务管理器中看到CYGWIN inetd服务已经启动了。
运行usr/sbin/inetd.exe --install-as-service
重新启动。
三.cvs服务配置
1、建立cvs用户组
在之前已经建立cvsroot用户
注意:在创建了用户和用户组后,别忘了更新cygwin的环境:
mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group
2.建立cvs组的用户cvsroot和所属的目录
不建也行:)
3.创建一个仓库:
这里仓库的位置是: /cygdrive/d/cvsroot
mkdir /cygdrive/d/cvsroot
cvs -d /cygdrive/d/cvsroot init
chmod -R 777 /cygdrive/d/cvsroot
4. 启动cvs服务器:
编辑修改/etc/inetd.conf文件,加入:
cvspserver stream tcp nowait cvsroot /bin/cvs cvs -f --allow-root=/cygdrive/d/cvsroot pserver
编辑修改/etc/services,加入:
cvspserver 2401/tcp #cvs server tcp port
cvspserver 2401/dup #cvs server udp port
然后察看cvs服务器是否已经运行:
# netstat -a|grep 2401
tcp 0 0 :::2401 :::* LISTEN 4299/inetd
或
# netstat -a |grep cvspserver
tcp 0 0 *:cvspserver *:* LISTEN
则说明cvs服务器已经运行。
5.验证CVS服务是否已经配置成功(用户cvsroot, 密码111111,IP192.168.0.2)
$ cvs -d :pserver:cvsroot@192.168.0.2/cygdrive/d/cvsroot login
Logging in to :pserver:cvsroot@192.168.0.2:2401/cygdrive/d/cvsroot
CVS password:
$
不出现其它信息即表示已经配置成功,如果出现下面信息则需要先关闭selinux 服务
$cvs [checkout aborted]: unrecognized auth response from localhost: cvs pserver: cannot open /src/CVSROOT/config: Permission denied
关闭selinux 服务
#vi /etc/selinux/config
SELINUX=disabled
或者
#setenforce 0
四.CVS使用管理
在 cvs 管理员用户(在我这里是 cvsroot 用户)的$HOME(/cygdrive/d/cvsroot)里有一个 CVSROOT 目录,这个目录里有一个配置文件passwd
passwd:cvs 用户的用户列表文件,它的格式很象 shadow 文件:
{cvs 用户名}:[加密的口令]:[等效系统用户名]
1、创建可以登陆cvs服务的用户及密码,需要创建文件passwd
$vi /cvsroot/CVSROOT/passwd
文件内容如下:
cvsroot:jFAQ58daGWLGk:cvsroot
xxx:jFAQ58daGWLGk:cvsroot
此文件的意思是cvsroot和xxx两个用户可以登陆cvs服务器,登陆后其权限为用户cvsroot的权限
注意:cvs用户和服务器用户是可以不一样的
如果需要添加新的CVS用户,只需要在/cvsroot/CVSROOT/passwd 文件中复制一行,将用户名改为新的CVS用户名即可
2、jFAQ58daGWLGk为密码,由以下文件生成:
$vi /cvsroot/passwd.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";
3、修改passwd.pl为可执行
#chmod 777 passwdgen.pl
如果需要密码为:xxx,则敲入:
passwd.pl "xxx"
回车即可得到加密密码,用其替换passwd文件中的jFAQ58daGWLGk
5、TortoiseCVS客户端配置
:pserver:xxx@192.168.28.41:2401/cygdrive/d/cvsroot
协议: 口令授权服务协议(:pserver:)
协议参数:
服务器: 192.168.0.2
端口: 2401
仓库文件夹: /cygdrive/d/cvsroot
用户名: xxx
用户名必须/cvsroot/CVSROOT/passwd 下已经加入的CVS用户。
这样可以在客户端创建模块,和添加文件,提交等CVS操作了。
附录1:
如果遇到长时间无反应,请先检查网卡是否正常,然后将防火墙关闭.
#ifconfig eth0
#chkconfig iptables off 永久关闭
#service iptables stop 临时关闭
附录2:
只读,写入权限设置:
在CVSROOT目录建立readers,writers文件
把需要设定的用户名直接写入即可。
注意:
1.首先需要在passwd文件中存在该用户名。
2.writers中的用户不能在readers中,要不然不能上传更新文件。
阅读(1862) | 评论(1) | 转发(0) |