现在的位置: 首页 > 综合 > 正文

Trac, SVN的安装以及配置

2019年05月06日 ⁄ 综合 ⁄ 共 4818字 ⁄ 字号 评论关闭

目录
1. 简介
2. 下载必备软件包
3. Trac的安装
4. 新建和测试Trac工程
5. 集成Trac和Apache
6. 安装SVN并且集成Apache
7. 权限管理

8. Trac中的Wiki和Ticket

1. 简介

首先介绍一下Trac、SVN、Apache、Wiki的概念。

Trac是一个开源的项目管理、追踪缺陷(Bug)软件。Trac使用Python语言开发,是建立在Wiki的Ticket基础上的网页界面系统。Trac是以面向进度模型为项目管理模型的,最明显的特点就是它是以里程碑 (Milestone) 方式进行项目管理的。每个里程碑中的具体要做哪些事情,就使用Ticket来进行定义、跟踪等。Trac
以简单的方式建立了一个软件项目管理的Web应用,以帮助开发人员更好地写出高质量的软件; Trac 应用力求不影响现有团队的开发过程。


SVN是一个开源的版本管理工具,是CVS的替代产品。SVN将数据放置在中央资料档案库中 (repository) 中,该档案库会记住每一次文件的变动。这样就可以把档案恢复到旧的版本。SVN是一个通用的系统,可以用来管理任何类型的文件,包括程序源代码。

Apache是是世界使用排名第一的Web服务器,它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

Wiki是一个协同写作平台或者称之为开放编辑系统。即它允许所有人修改它的网页。Wiki使用了简化的语法代替复杂的HTML,加上WEB界面的编辑工具,降低了内容维护的门槛。Wiki的特点是方便和开放。

2. 下载必备的软件包
以下安装包是完成Trac安装与配置必须的:
httpd-2.2.21-win32-x86-no_ssl.msi
python-2.6.6
Trac-0.12.2.win32.exe
Genshi-0.6.win32.exe
setuptools-0.6c11.win32-py2.6.exe
pysqlite-2.6.0.win32-py2.6.exe
Setup-Subversion-1.6.17.msi
svn-python-1.6.5.win32-py2.6.exe
mod_python-3.3.2-dev-20080819.win32-py2.6.exe


3. Trac的安装
在开始安装之前,笔者推荐不要把下列程序安装到默认路径,即Program Files文件夹下。安装在默认路径下会引起一些列的权限问题,导致Trac,SVN的安装失败。
Step 1. 安装Apache Http Server:httpd-2.2.21-win32-x86-no_ssl.msi。Trac是一个网页界面系统,通过在Apache服务器上部署Trac,可以实现对Trac项目的访问和管理。
Step 2. 安装python-2.6.6。Trac以及相关的安装软件是使用python语言编写的,需要python环境的支持。
Step 3. 安装trac-0.12.2.win32.exe。Trac安装包。安装时将自动识别python的安装目录,自动安装到python目录下的script文件夹下。
Step 4. 安装Genshi-0.6.win32.exe。Genshi模板系统,用于HTML渲染,属于网页表现层。安装时会自动识别python安装目录。
Step 5. 安装setuptools-0.611.win32-py2.6.exe。安装工具。安装时会自动识别python安装目录。
Step 6. 安装pysqlite-2.6.0.win32-py2.6.exe。PySQLite是SQLite和python绑定的轻量级数据库引擎,它是Trac默认的数据库。安装时会自动识别python安装目录。
注意:因为step3-6中的安装文件依赖于python的安装目录,所以python-2.6.6的安装必须先于其他文件。

4. 新建和测试Trac工程
Step 1. 在命令行中新建Trac工程:
$python26/Scripts/ >trac-admin C:\tree\trac\projectname initenv
Step 2. 测试本地:
在命令行中输入$python26/Scripts/ >tracd -p 8080 C:\tree\trac\projectname,在命令行打开的情况下在浏览器中访问http://localhost:8080/。
当看到Serving on 0.0.0.0:8080 view at http://127.0.0.1:8080/时,测试成功。

5. 集成Trac和Apache
Step 1. 安装mod_python-3.3.2-dev-20080819.win32-py2.6.exe。
Step 2. 在Apache2.2/conf/httpd.conf中加入LoadModule python_module modules/mod_python.so。
Step 3. 重启Apache。
Step 4. 在$Apache2.2/conf/httpd.conf中加入:
<Location /trac>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend 
PythonOption TracEnvParentDir C:/tree/trac
PythonOption TracUriRoot /trac
</Location>
注意:这里的TracEnvParentDir指新建的trac工程所在的目录,而非tracd.exe所在 目录。本教程中,trac工程所在目录为C:/tree/trac。
Step 5. 修改监听端口:Listen 8000
Step 6. 测试:访问http://localhost:8000/trac,检查是否能访问trac工程

6. 安装SVN并且集成Apache
Step 1. 安装Setup-Subversion-1.6.17.msi和svn-python-1.6.5.win32-py2.6.exe。
Step 2. 把$subversion/bin/mod_authz_svn.so和mod_dav_svn.so复制到$Apache2.2/modules/下,并在$Apache2.2/conf/httpd.conf中加入:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

并把LoadModule dav_fs_module modules/mod_dav_fs.so和LoadModule dav_module modules/mod_dav.so前的#号去掉
把$subversion/bin/目录下的所有.dll文件复制到$Apache2.2/bin目录下
Step 3. 重启Apache。
Step 4. 新建SVN工程:
在cmd中>svnadmin create --fs-type fsfs C:\tree\svn\reponame
Step 5. 创建passwd密码文件
在cmd中>$Apache2.2/bin > htpasswd -c C:\tree\passwd admin
Step 6. SVN和Apache集成:在$Apache2.2/conf/httpd.conf中加入
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath C:/tree/svn
# <LimitExcept GET PROPFIND OPTIONS REPORT>
AuthType Basic
AuthName "SVN"
AuthUserFile "C:/tree/passwd"
Require valid-user
# </LimitExcept>
</Location>
Step 7. 重启apache。

7. Trac的权限管理
Step 1. Trac 页面中的login
在$Apache2.2/conf/httpd.conf中加入:
<LocationMatch "/trac/[^/]+/login">
AuthType Basic
AuthName "TRAC"
AuthUserFile "C:/tree/passwd"
Require valid-user
</LocationMatch>

Step 2. Trac中添加TRAC_ADMIN用户:命令行中输入
$python26/scripts > trac-admin C:\tree\trac\projectname permission add admin TRAC_ADMIN

Step 3. 把svn版本库同步到trac中:
修改$trac/projectname/conf/trac.ini中repository_dir = c:\tree\svn\reponame
Cmd:
$python26/scripts > trac-admin C:\tree\trac\projectname repository resync (default)

trac0.12及以后的版本添加了一种新的svn版本库与trac关联的方法: 
1. 用admin账户登录trac,选择右边的Admin栏,点击Admin栏中的
Version Control
Repositories
将服务器上的repo路径进行添加
2.按照添加完成后的操作提示进行操作:
1. 运行 trac-admin $ENV repository resync "RepoName" 以同步Trac和版本库。
2. 您还应该在版本库上设置一个 post-commit 钩子(该post-commit的添加位置为svn repository的hooks目录下),对每一提交的变更集调用 trac-admin $ENV changeset added "RepoName" $REV。
例:在hooks目录下添加post-commit.cmd可执行文件,文件内容为:
@C:\Python26\Scripts\trac-admin.exe C:\tree\trac\test changeset added "%1" "%2"

之后可以通过htpasswd C:\tree\passwd users 添加用户

注意:Trac,SVN的用户和密码都保存在C:\tree\passwd这个文件里,要修改密码的话只有通过在服务器端修改这个密码文件来实现,客户端是不能修改密码的。如果要实现在客户端修改密码,可以选择安装tracaccount plugin插件,相关链接:http://trac-hacks.org/wiki/AccountManagerPlugin

8. Trac中的Wiki和Ticket
Wiki 是一个协同写作平台或者称之为开放编辑系统,即它允许所有人修改它的网页。Wiki 使用了简化的语法,替代复杂的 HTML,加上 WEB 界面的编辑工具,降低内容维护的门槛。Wiki的特点是方便和开放。

Wiki 最适合做百科全书、知识库、整理某一个领域的知识等知识型站点,几个分在不同地区的人利用 Wiki 协同工作共同写一本书等等。Wiki 技术已经被较好的用在百科全书、手册/FAQ编写、专题知识库方面。

整个Trac是建立在Wiki和Ticket的基础上的,Wiki在Trac中充当书写文档、Ticket的语法,它包含了一些类型的HTML语法,但简化了语法格式,在Guide文档中有语法的详细介绍。Wiki的具体语法见:http://trac.edgewall.org/wiki/WikiFormatting

Ticket是Trac中的另一个重要组成部分,Tac使用Ticket传递消息,消息传递的个体单位也以Ticket为标准。一个Ticket是具体要做的事情的载体,它包含了很多描述性消息。Ticket的详细信息请见Guide文档。

抱歉!评论已关闭.