LINUX下CVS服务器的配置

发表于:2007-06-21来源:作者:点击数: 标签:
各位好!!我是一位新手,刚刚装了 LINUX ,经理要求配 CVS 可我找到的CVS资料说法各一,而且屡试屡败。 我现在只是把CVS安装成功,但环境配置老是出错 CVS INIT老是提示: name or server cann't find 请各位帮帮小女子,不胜感激!! 首先设置CVSROOT环境

   
各位好!!我是一位新手,刚刚装了LINUX,经理要求配CVS

可我找到的CVS资料说法各一,而且屡试屡败。


我现在只是把CVS安装成功,但环境配置老是出错


CVS INIT老是提示:


name or server cann't find


请各位帮帮小女子,不胜感激!!




首先设置CVSROOT环境变量

比如你的就自己用用的话:在~/.profile中加入set CVSROOT=:local:/home/CVS

这时候你就可以cvs init了。

如果用pserver的话,....是吗?不是就不说了。



这个东西也是害人不浅阿, 我当时就折腾了很久最后能连上了,但是也没有用好, 你可以下载一个wincvs客户端, 在那里配置会简单很多.可以帮助你理解.



呵呵,弱人才那样说的。WinCVS只不过图形解释器而已。你在NT下可以用cvsnt来做服务器


[这个贴子最后由m113在 2002/10/18 05:28pm 编辑]


嘻嘻,我是刚刚才学LINUX,可以说LINUX白痴一个


大哥,可不可以手把手教啊

我要配置的是服务端的CVS,是在XWINDOWS下用命令窗口进行编辑命令的


“~/.profile”怎么进去啊?点编辑啊?


谢谢!!!




你能详细说说你的安装步骤吗?很凑巧我最近也在弄这个,交流交流?包括 rpm -i cvs-xxx 以后还做了些什么配置?




CVS是什么啊 ?能解释一下吗?我也想学哦, alstone 开始讲课吧,,,,,,,


redhat 自带就有cvs了, 在服务器端的配置才tmd难呢.我始终不知道这个东西怎么导入其他的用户数据源, 不可能总是使用操作系统的用户信息阿? 还有很多事情我都不懂,可要多听听


Version Control System。用它你可以记录你的源代码更新记录


源代码干吗要更新啊?又不是生产LINUX的,一般用户用的到吗?

“在服务器端的配置才tmd难呢.我始终不知道这个东西怎么导入其他的用户数据源, 不可能总是使用操作系统的用户信息阿? ”听起来象是银行等地方用的数据库系统。





下载完之后安装的步骤:

# tar xzvf cvs-1.11.tar.gz

# cd cvs-1.11

#./configure

# make

# make install

-----------------------

注解:cvs-1.11.tar.gz 是下载的文件名

#是根用户的标志,而且必须是在根用户之下


这个东西主要是为软件工程用的,在开发大型项目比如现在的开发源码项目,经常会有很多开发树,为了保证开发的进度,出了错能够即时的回到原有的状态, 而设计了这中代码管理工具.




我觉得m113是根本就没有作除 rpm -i cvs-xxx 以外的事


1.检查 /etc/services

vi /etc/services

:/cvspserver

如果找到的行前面并没有#,那么就不用修改了,否则去掉行首的#


2.在 /etc/xinetd.d 目录下创建一个文件,随便命名,比如 cvs

vi /etc/xinetd.d/cvs

在其中添上

service cvspserver

{

socket_type = stream

wait = no

user = root

env = HOME=

server = /usr/bin/cvs

server-tags = --allow-root=/home/cvsroot pserver

}


3.保存以后创建一个名为 cvs 的组和一个名为 cvsroot 的用户

groupadd cvs

useradd -g cvs -s /sbin/nologin cvsroot

cd /home/cvsroot

chown -R cvsroot /home/cvsroot


4.然后

vi /etc/profile

在其中添上

CVSROOT = /home/cvsroot

export CVSROOT


5.重启 xinetd:

/etc/init.d/xinetd restart


6.cvs init


这样CVS就可以用了


添加仓库: 进入到你的源码目录

cd /your/sources/path

然后执行

cvs export SOURCE_DIR_NAME Author Version

其中的SOURCE_DIR_NAME 就是你的工程在 CVSROOT 目录中保存的目录名, Author 为工程作者, Version 为你的工程发行版本号,必须以字母开头




1.如果系统没有安装CVS的,可以到 http://ftp.cvshome.org/ 去下载。已经安装的也建议删除旧的,下载一个新的。我的做法是:

下载 http://ftp.cvshome.org/linux/cvs-1.11.2-i386-linux-glibc-2.1.gz;

gzip -d cvs-1.11.2-i386-linux-glibc-2.1.gz;

mv cvs-1.11.2-i386-linux-glibc-2.1 /usr/local/bin/cvs;

chmod 755 /usr/local/bin/cvs;

这样做就是没有man pages。要不你可以下载rpm格式的。安装后应该有man pages。


至于CVS系统的安全,我只知道可以不使用 real user 登陆:

chmod 644 $CVSROOT/CVSROOT/config

vi $CVSROOT/CVSROOT/config

将第二行的

#SystemAuth = no

去掉注释,即改为

SystemAuth = no


然后,创建一个并没有根目录的用户,用户名随便,这个用户就是作为你的虚拟用户帐号的

useradd -g cvs -M username


接着将 shadow 复制到 $CVSROOT/CVSROOT, 并重命名为 passwd:

cp /etc/shadow $CVSROOT/CVSROOT/passwd


修改passwd文件:

chmod 0644 $CVSROOT/CVSROOT/passwd

vi $CVSROOT/CVSROOT/passwd

将 username 对应那一行以外的行全部去掉,然后去掉 username 所在行第二个冒号以后的所有内容,并添上字符串 cvsroot, 改为如下格式

username:sds54354jkbft576/fdsh:cvsroot


最后去掉在系统中添加的那个 username:

userdel -f username


好了,这样你的CVS用户就只能用 passwd 中规定的用户来登陆你的CVS SERVER了,并且登录以后自动映射为real user cvsroot





CVS的安全方面你说的找个文档我也看过,增加一个用户还好,多了之后,烦死了,我觉得应该可以连接ldap,或者mysql的数据库,作为用户的认证服务




引用:

http://www.csdn.net/develop/article/14/14579.shtm


我插一句啊,

“我觉得应该可以连接ldap,或者mysql的数据库,作为用户的认证服务”,这句话是不是就是说能够在用户和CVS之间插一个用户验证的东西?就象以个跳板一样?我什么也不懂,随便问问。





在世纪应用中,一个开发小组的人是不会很多的。没有这个必要。

密码的添加有一个Windows下的产生器可以用。




我倒想看看你说的“随便拷贝”,你能够找到我这个原文?

这些都是我自己摸索出来的,全部通过试验并且已经应用到我平时的处理中


呼~~~ 相当气愤,自己辛辛苦苦一个字一个字敲出来的自己的做法,给人说成“随便拷贝”的...

我在这里所说的基本上都是我自己通过了试验的,哎~~ 既然能够随便拷贝,你为什么不“拷贝”?为什么要等我敲出来以后,随便很不负责任地说是“随便拷贝”的?人在论坛中就应该遵守基本的准则吧?你说是吧?

呼呼~~~




我是按照:

环境设置:指定CVS库的路径CVSROOT

tcsh

setenv CVSROOT /path/to/cvsroot

bash

CVSROOT=/path/to/cvsroot ; export CVSROOT


后面还提到远程CVS服务器的设置:

CVSROOT=:ext:$USER@test.server.address#port:/path/to/cvsroot CVS_RSH=ssh; export CVSROOT CVS_RSH


初始化:CVS版本库的初始化。

cvs init

---------------------------------------------------------

却出现:

ssh: test.server.address#port: Name or service not known

cvs [checkout aborted]: end of file from server (consult above messages if any)


-----------------------------------------------------------

网页上说:

解决的方法是做一个脚本指定端口转向


=====================================================

如何做啊,我头晕了


CVSROOT=:ext:$USER@test.server.address#port:/path/to/cvsroot


首先现在一般都使用pserver模式(如我在前面所说的配置方法),所以 :ext: 在大部分情况下应该换为 :pserver:

接着你的DNS能够解析 test.server.address 吗?应该是不能的,这里需要将 test.server.address 替换为你的CVS服务器的IP地址或者主机名, 至于端口,如果安装的时候根本就没有设置端口,就可以省略,pserver默认为2401, 这个你可以通过查看你的 /etc/services 中 cvspserver 那两行来了解

所以综上,

假设你的CVS有效帐号为 myproject,你的CVS服务器地址为 192.168.0.11, 服务器上环境变量CVSROOT为 /home/cvsroot 的话

那么你在远程客户端上的CVSROOT应该设置为 :pserver:myproject@192.168.0.11:/home/cvsroot


实在不知道你所参考的网页中有没有考虑如果服务器端根本就没有装SSH,那怎么办?







下面引用由一颗小白菜在 2002/10/18 05:50pm 发表的内容:

我觉得m113是根本就没有作除 rpm -i cvs-xxx 以外的事





西西,我是在很努力的做之中。。。。。。


1.检查 /etc/services

vi /etc/services

:/cvspserver

如果找到的行前面并没有#,那么就不用修改了,否则去掉行首的#


找不到啊!

no such files or directory


请问,应该如何去掉首行的#???


谢谢!

原文转自:http://www.ltesting.net