成功进行CVS服务器的配置与测试
核心提示:文章标题:成功进行CVS服务器的配置与测试。Linux是中国站长站的1个技术频道。包括桌面利用,Linux系统治理,内核研究,嵌进式系统和开源等1些基天职类
1、服务器真个安装与配置(1)CVS的安装
通常情况下,安装操纵系统的时候就安装了CVS.这里首先使用root用户(其他用户下通过sudo)可以通过命令:
cvs:/usr/bin/cvs/usr/X11R6/bin/cvs/usr/bin/X11/cvs/usr/share/man/man1/cvs.1.gz/usr/share/man/man5/cvs.5.gz
假设系统还没有安装CVS的话,可以通过
debian:~#apt-getinstallcvs
对1个不同的发行版有不同的安装方法,最基本的方法就是下载源码包(.tar.gz的包),然后自己1步1步安装。主要就是解压,configure,make,makeinstall这几步。
另外1个要提示的是,曾有的文章中写到还要安装CVSD。本人Google了1下,得知CVSD是1个CVS的辅助工具,可以是CVS的配置更加方便。不安装他也没关系,所以我们直接配置CVS,而且本生CVS的manual也说了这个安装好的CVS本身就即是服务器也是客户端,主要就是看如何对CVS的配置了。
下面重点先容CVS服务器段的配置。
(2)CVS服务器真个配置
1.创建cvs组和用户
1)创建cvs组
2)创建的新用户HOME目录
3)添加新用户cvsroot,并将其添加至cvs组,并指定其HOME目录
4)设置cvsroot用户的密码,我这里为:cvsroot
EnternewUNIXpassword:
RetypenewUNIXpassword:
passwd:已成功更新密码
5)更改/home/cvsroot/目录及其子目录的属主和属组,由因而在root用户下间的该目录,他的属主和属组都是root,这里我们要将其属主改成cvsroot,属组改成cvs,保证cvs组的用户对该目录有相应的权限。
6)更改/home/cvsroot目录属性,保证cvsroot同组(cvs组)的其他用户也有读写和履行权,我们以后要为cvs组添加用户
2.切换至cvsroot用户,并创建1个仓库
1)切换用户
2)设置全局变量CVSROOT,指定仓库所在的目录
3)创建仓库
3.提交源进源代码
1)进进代码所在目录,也就是你想做成CVS控制的源代码目录,我这里是/home/usbprj/,目录下文件有:
debian:/home/usbprj$ls
MakefileModule.symverstest.cusb-skeleton.c
装载cvsimport-m"[repositorytest]"[cvstest][vendortag][releasetag]
-m后面引号内填进log内容,接下来是源代码模块名称,接着是装载者,最后是标识符号,我这里是:
Nusbprj/Makefile
Nusbprj/test.c
Nusbprj/Module.symvers
Nusbprj/usb-skeleton.c
Noconflictscreatedbythisimport
此时,我们的源码也提交了,说明module已建立了。其目录为:/home/cvsroot/usbprj/
2)假设我们在root用户(或其他用户,但必须保证该用户对寄存module的目录有写的权限)下测试,checkout出这1个module,可以履行以下:
cvscheckout:Updatingusbprj
Uusbprj/Makefile
Uusbprj/Module.symvers
Uusbprj/test.c
Uusbprj/usb-skeleton.c
4.创建登录CVS服务器的用户和密码
1)在/home/cvsroot/CVSROOT/下创建passwd文件,并编辑内容以下:
cvsuser2:*****:cvsroot
这个文件的意思是有cvsuser1和cvsuser2两个登录cvs服务器的用户,登陆后的权限是cvsroot权限,即第3个字段指定。
留意:这里的新建用户的两个新建登录cvs服务器的用户和系统用户是不同的,这两个用户不能用来登录系统,只能登录cvs服务器。这里我们默许不答应系统用户登录cvs服务器。
2)其中,passwd文件中每行的第2个字段“*****”为用户cvsuser1和cvsuser2密码的加密口令。可以通过下面文件对用户密码加密。
文件名:passwdgen.pl.该文件是perl的脚本。必须保证系统安装了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";
为该文件添加可履行权限,
debian:~$chmod+xpasswdgen.pl
用户cvsuser1和cvsuser2用户天生加密口令:
ZGzWKlE1mv4EY
debian:~$./passwdgen.plcvsuser2
LFfpGaDMC/Cj6
用法:passwdgen.plyourpasswd.其中,yourpasswd即你所需要设定的密码。我这里给我的两个用户的密码和用户名同名,呵呵,为了方便。其中天生的加密口令为13个字符,是由[0⑼][A-Z][a-z][.][/]组成。把天生的加密口令替换到passwd文件中相应的“*****”字段即可。
5.设置开机启动CVS服务
我们这里使用xinetd启动,假设系统没有安装xinetd的话,安装之。
1)检查/etc/services中,cvspserver是否是开启。cvspserver是远程登录CVS服务器时对用户的验证方式。
#sourceslike
cvspserver2401/tcp#CVSclient/serveroperations
cvspserver2401/udp
2)创建cvspserver文件
切换至root用户下:
debian:/etc/xinetd.d#touchcvspserver
编辑该文件,内容以下:
{
disable=no
socket_type=stream
wait=no
user=root
server=/usr/bin/cvs
server_args=-f--allow-root=/home/cvsrootpserver
log_on_success+=USERID
log_on_failure+=USERID
}
其中,--allow-root=/home/cvsroot即仓库所在目录。
留意:每行的第1个"="左右两侧要有1个空格。
3)重启xinetd服务,使配置生效
重启xinetd
Stoppinginternetsuperserver:xinetd.
Startinginternetsuperserver:xinetd.
肯定cvspserver是否是启动
debian:/etc/xinetd.d#netstat-l|grepcvspserver
tcp00*:cvspserver*:*LISTEN
至此,CVS服务器配置全部完成,下面进行测试。
2.客户端测试
客户真个测试包括本地测试和远程测试。
1.本地测试上面我们已用root用户checkout测试过了。
具体方法就是:
debian:/home#cvslogin
假设没有提示出错的话,就代表成功了。
但假设在pserver启动以后,再用同种方法进行本地测试的话,就有题目了,提示以下:
cvslogin:canonlyuse`login'commandwiththe'pserver'method
cvs[loginaborted]:CVSROOT:/home/cvsroot/
提示的意思是说,现在这能使用通过pserver验证的方式登录服务器了。那末,在配置完pserver服务器后,本地和远程登录的方法就1样了,都要通过pserver验证。下面先容远程登录的方法,一样适用于本地登录。
2.远程测试的方法以下:
1)CVS服务器端IP:192.168.1.248。使用另外1台主机,一样是DebianGNU/Linux,一样保证安装了CVS,IP为:192.168.1.244。通过Windows下WinCVS一样可以登录。
客户端主机使用非root用户,我的用户名为david.
首先建立环境变量CVSROOT,以用户cvsuser1登录:
david@debian:~$exportCVSROOT=:pserver:cvsuser1@192.168.1.248:/home/cvsroot
然后登录
david@debian:~$cvslogin
假设没有毛病提示,则代表成功登录CVS服务器。
但我这里出现了1个提示:
Logginginto::pserver:cvsuser1@192.168.1.248:2401/home/cvsroot
CVSpassword:
cvslogin:CVSpasswordfile/home/david/.cvspassdoesnotexist-creatinganewfile
该题目就是在客户端登录时要在HOME目录下有个.cvspass的文件即可。因此,解决方法就是在/home/david/下:
david@debian:~$touch.cvspass
再次登录就没有提示了。本地登录也能够采取这类方法,或将服务器的IP地址改成localhost.
2)检出模块
我们上面已建立了1个仓库了,usbprj.我们在客户端将该模块checkout:
cvscheckout:Updatingusbprj
Uusbprj/Makefile
Uusbprj/Module.symvers
Uusbprj/test.c
Uusbprj/usb-skeleton.c
则在当前目录下天生目录usbprj.
进进该目录,可以对该目录履行文件的修改,添加,然后可以用commit命令对修改后的进行提交。具体CVS的操纵,可以看CVS的手册,这里不再多说。
还有1个题目,我们这里CVS服务器有两个用户,cvsuser1和cvsuser2.假设需要对这两个用户设置不同的权限。可以在服务器端/home/cvsroot/CVSROOT/下建立两个文件,readers和writers。文件中每1行可写1个用户名。readers里面的用户具有只读权限,writers里面的用户具有可读可写权限。
TAG:用户,服务器,文件,目录,测试
评论加载中...
|
上一篇: ASP.NET常常使用代码
下一篇: MySQL 索引详解