当前位置:Linux教程 - Linux文化 - linux系统下CVSTrac配置

linux系统下CVSTrac配置


关于CVSTrac CVSTrac 是一个开放源代码、与CVS 搭配使用的任务管理和错误跟踪工具,基于Web 方式访问,非常适合网上分布式小团队协同开发使用。 CVSTrac具有如下一些特点: 􀁺 基于WEB方式管理CVS的CVSROOT/passwd用户账号文件 􀁺 根据CVS提交注释自动生成变更集日志 􀁺 可自定义查询报表格式及颜色显示 􀁺 单一的可执行文件支持CGI、inetd及独立的WEB服务器方式运行 􀁺 内建一个CVS仓库WEB浏览器 􀁺 内建一个Wiki可在线编辑的内容发布系统 􀁺 内建一个文件型数据库引擎SQLite 􀁺 非常少的内存、硬盘、CPU占用 􀁺 支持为每个用户设定单独的权限 􀁺 支持匿名访问 􀁺 支持Unix/Linux/Windows及不同平台间数据库兼容 􀁺 Unix/Linux下支持Chroot安全运行方式 􀁺 在GNU Public License协议下发布

1.下载:从http://www.sqlite.org/download.html下载 我用的是:sqlite-2.8.17.tar.gz #cd /home #wget http://www.sqlite.org/sqlite-2.8.17.tar.gz #tar zxvf sqlite-2.8.17.tar.gz #mkdir sqlite_make #cd sqlite_make #../sqlite-2.8.17/configure #make install 如果没有出现错误,就编译安装成功了。

2.下载:从http://www.cvstrac.org/cvstrac/wiki?p=DownloadCvstrac 下载 我用的是http://www.cvstrac.org/cvstrac-2.0.0.tar.gz 这个地址下载的cvstrac-2.0.0.tar.gz #cd /home #wget http://www.cvstrac.org/cvstrac-2.0.0.tar.gz #tar zxvf cvstrac-2.0.0.tar.gz #cd cvstrac-2.0.0 #vi linux-gcc-mk 修改: SRCDIR = /home/chedong/cvstrac-1.1.2 INSTALLDIR = /usr/local/bin 然后 #mv linux-gcc.mk Makefile #make #make install

没有什么错误cvstrac编译安装成功! 我编译时出现错误:cvstrac: error while loading shared libraries: libsqlite.so.0: cannot open shared object file 我在/etc/ld.so.conf添加/usr/local/lib后用命令ldconfig就解决了。

3.初始化数据库

cvstrac init /home/cvsroot cvstest

注:/home/cvsroot 是你放数据库文件的目录。 cvstest 是数据库的名字,也是你以后用web访问的url。

4.启动cvstrac

官方介绍了三中方法: (1)用inetd或xinetd来启动。 (2)用cgi脚本来启动。 (3)用独立的 webserver来启动。

这个方法介绍如下:

(1)如果使用inetd启动: 编辑:/etc/inetd.conf添加如下内容: 80 stream tcp nowait.1000 cvs /usr/bin/cvstrac cvstrac http /home/cvsroot

如果用xinetd启动的: #touch /etc/xinetd.d/http #vi /etc/xinetd.d/http 添加如下内容: service http { socket_type = stream wait = no user = cvsroot server = /usr/bin/cvstrac server_args = http /home/cvsroot } #/etc/init.d/xinetd restart

创建一个CVSTrac启动脚本/var/www/cgi-bin/cvstrac内容如下: #!/bin/sh /usr/bin/cvstrac cgi /home/cvsroot 创建完成后,为脚本设置执行权限: chmod +x cvstrac 指定数据库的访问权限.

然后用http://your_server_ip/cgi-bin/run-cvstrac/cvstest/ 来访问。

大家都是高手,我就不用介绍上面的各个步骤的意思了。

(3)如果用webserver启动: 不能使用root用户来启动。 #su - cvsroot #cvstrac server 8008 /home/cvsroot 或#cvstrac chroot / cvsroot server 8008 /home/cvsroot

注:8008 用你想用的端口来替换 /home/cvsroot 是你cvs的$home目录。 chroot / cvsroot 是把root权限更改成cvsroot访问。 然后用http://your_server_ip:8008/cvstest/

5.配置过程中可能要遇到apache用户访问目录权限问题,我就不在这里说了。

配置成功,登陆默认用户密码都是:setup

6.如果有多个工程: 可以用如下来做:

cvstrac init /home/cvsroot test2 cvstrac init /home/cvsroot test3

7.有好多这样的文章,但我个人觉得都不实用,都是cp的,没有实践过。 例如:http://www.chedong.com/tech/cvs_card.html 上面写的好多错误(他有些地方对我们很有用),根据他写的就不会配置成功。 修改了cvs中工程的权限,那用cvs的web管理就没有意义了。

附录: 1.CVSTrac命令行参数 CVSTrac命令行参数如下: Usage: cvstrac ?? ?

? Or: cvstrac chroot ?? ?

? Or: cvstrac server

?

? Or: cvstrac chroot server

?

? Where: is one of "cgi", "http", "init", or "update". is the directory that contains the project database.

is the name of the project.

is a TCP port number to listen on. is a chroot jail directory. is the user to run as. 第一种形式的命令行,用来以cgi或inetd方式运行CVSTrac,以及初始化(init)及更新(update)数据库。 第三种形式的命令行,用来以独立的Web服务器方式启动CVSTrac服务。 目录参数指向包含有CVSTrac数据库的目录。

可选参数,表示CVSTrac数据库名,不需要扩展名。如果指定了该参数,用户访问CVSTrac服务时不需要再指定数据库名,此时

CVSTrac服务只支持一个数据库。如果省略该参数,该CVSTrac服务可以同时支持多个数据库,由用户在URL中指定数据库的名称。 第二和第四种形式的命令行,用于高安全性的chroot方式启动CVSTrac服务。chroot运行方式本文档不做介绍,如果需要使用,请查阅CVSTrac

官方文档: http://www.cvstrac.org/cvstrac/wiki?p=ChrootJailForCvstrac

2.有关CVSTrac运行环境 要正确地运行CVSTrac,需要为其提供一定的运行环境,包括外部程序支持及提供CVSTrac进程足够的权限。绝大部分CVSTrac配置问题都是因为

权限引起的,建议管理员仔细阅读下列内容。 CVSTrac运行时需要以下外部程序的支持,请检查你的系统中存在以下程序: 􀁺 co:该命令用来从CVS仓库的“*,v”文件中取出某个版本的文件。 􀁺 diff:该命令间接被rcsdiff命令调用。 􀁺 rcsdiff:用来获得CVS文件两个版本之间的差异。 􀁺 rlog:用来从CVS文件中查找提交注释、分支以及标签信息。 CVSTrac对权限的要求: 􀁺 基于安全考虑,CVSTrac不能以root身份运行。 􀁺 CVSTrac进程要有对CVSTrac数据库所在目录的读写权限(sqlite写数据库时需要在数据库目录中创建临时文件) 􀁺 CVSTrac进程要有对CVSTrac数据库文件的读写权限。 􀁺 CVSTrac进程要有对CVS仓库文件以及CVSROOT/history文件的读权限。 􀁺 如果设置由CVSTrac管理passwd文件,CVSTrac进程要有对passwd、readers、writers文件的写权限,如果passwd等文件不存在,还需要有对

CVSROOT目录的写权限。另外,由于CVSTrac管理passwd文件时,会将CVSTrac进程所有者作为passwd文件中的本地映射帐号,故间接地还需要

CVSTrac进程所有者帐号有对CVS仓库的读写权限。 􀁺 CVSTrac进程要有对前述几个外部程序的运行权限。 另外,还要检查服务器防火墙是否打开了CVSTrac服务的端口。