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服务的端口。