最近在做一个敏捷的项目,前几天经理要求安装一个支持敏捷的项目需求、bug管理系统,经过网上搜索发现trac系统不错,有第三方的插件支持敏捷功能,还有wiki,timeline、roadmap,source code浏览等等功能,官方网站一大堆英文介绍,而且也不是很详细,特别安装部分。经过本人的几次安装实践,终于搞定了,现将安装配置方法和大家进行分享。trac是用python写的,速度稍微慢点。
本人是在ubuntu9.04安装的。
1.Ubuntu9.04上安装相关软件:
sudo apt-get install apache2 libapache2-mod-python libapache2-svn python-setuptools subversion python-subversion
sudo easy_install Trac==0.11 //0.11版本
注:如果想安装 Bitten(trac的插件)
# 兼容trac 10.4的bitten
sudo apt-get install python-clearsilver
# Needed for bitten unitest.
sudo easy_install http://darcs.idyll.org/~t/projects/figleaf-latest.tar.gz
2. 配置Apache2
创建文件/etc/apache2/sites-available/trac,并加入以下内容:
sudo vi /etc/apache2/sites-available/trac
<VirtualHost *:80>
ServerAdmin admin@localhost
ServerName trac.example.com
DocumentRoot /var/www
ErrorLog /var/log/apache2/error.trac.log
CustomLog /var/log/apache2/access.trac.log combined
<Location /projects>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/lib/trac
PythonOption TracUriRoot /projects
PythonOption PYTHON_EGG_CACHE /tmp
</Location>
# use the following for one authorization for all projects
# (names containing "-" are not detected):
<LocationMatch "/projects/[[:alnum:]]+/login">
AuthType Basic
AuthName "trac"
AuthUserFile /etc/apache2/dav_svn.passwd #存储用户账号密码文件
Require valid-user
</LocationMatch>
</VirtualHost>
然后禁掉默认的virtualhost,启动Trac虚拟主机, 并重启Apache2:
sudo a2dissite default
sudo a2ensite trac
sudo /etc/init.d/apache2 reload
3. 创建svn工作目录
假设Subversion 仓库目录是 /var/lib/svn/YourProjectNameHere:
sudo mkdir /var/lib/svn
sudo svnadmin create /var/lib/svn/YourProjectNameHere
更改文件权限:
sudo chown -R www-data /var/lib/svn
sudo chown -R www-data /var/lib/trac
sudo /etc/init.d/apache2 reload //重启apache2
然后导入相关代码文件到仓库里,或使用客户端访问,add新文件到subversion 。具体参考subversion 官方网站。
4. 创建Trac工作目录
sudo mkdir /var/lib/trac
sudo chown www-data:www-data /var/lib/trac
注:apache用户必须对trac文件有可写权限。
假设trac的工程目录是 /var/lib/trac/YourProjectNameHere.当然你使用其他文件路径作为工程目录也可以。
sudo mkdir /var/lib/trac
sudo trac-admin /var/lib/trac/YourProjectNameHere initenv
执行后,按照提示分别输入
- 工程名 (即YourProjectNameHere)
- Svn 类型(即:svn)
- svn 仓库路径(即:/var/lib/svn/YourProjectNameHere)
- 输入数据库链接(mysql://root:password@localhost/trac,需要事先在mysql中创建数据库trac,要支持中文时创建trac时默认编码设为utf-8)
最后提示安装成功。
更改文件及子文件夹的权限:
sudo chown -R www-data /var/lib/trac
5. 配置subversion服务
修改文件/etc/apache2/mods-available/dav_svn.conf :
<Location /svn>
# 去掉下面这句话前的#号
DAV svn
# 设置repository
SVNParentPath /var/lib/svn
</Location>
保存文件。
6.创建trac用户密码账号文件(使用apache htpasswd file)
sudo htpasswd -c /etc/apache2/dav_svn.passwd username1
然后输入username1的密码两遍。
如果要增加用户:
sudo htpasswd –b /etc/apache2/dav_svn.passwd username2 passwd_for_username2
7.启动服务trac
以独立模式启动服务http认证登陆(其他服务启动方式需要额外配置,可参考官方网站http://trac.edgewall.org/ ):
Sudo tracd -p 8000 --basic-auth="YourProjectNameHere(工程名),/etc/apache2/dav_svn.passwd ,test.com" /var/lib /trac/YourProjectNameHere/
basic authentication单工程启动方式:
sudo tracd -p 8000 --auth="YourProjectNameHere(工程名),password_file_path,test.com" /var/lib /trac/YourProjectNameHere/
basic authentication多工程启动方式:
sudo tracd -p 8000
对于单个工程则启动方式(from认证方式):
sudo tracd -p 8000 /var/lib/trac/YourProjectNameHere/
然后在浏览器中打开http://localhost:8000/YourProjectNameHere/
即可看到,哈哈,成功了,可以使用username1或者username2登陆。
8.安装账户管理插件Account Manager Plugin
Sudo easy_install http://trac-hacks.org/svn/accountmanagerplugin/0.11
编辑trac的配置文件:/var/lib/trac/YourProjectNameHere/conf/trac.ini
在[components]中添加:
acct_mgr.admin.AccountManagerAdminPage = enabled
进行保存。然后:
sudo trac-admin /var/lib/trac/YourProjectNameHere
输入 permission add username1 TRAC_ADMIN 回车 ,为username1用户增加超级管理员权限。
然后重启服务,使用username1登陆即可看到admin菜单,即可进行系统管理。
另外,还可以设置http的from认证方式进行登陆:
trac.ini中设置为:
trac.web.auth.LoginModule = disabled
acct_mgr.web_ui.LoginModule = enabled
acct_mgr.http.httpauthstore = enabled
9.安装Agile插件
增强Trac功能,使之更适应敏捷软件开发过程管理。具体可参考http://www.agile-trac.org/
(2).重新启动trac服务:
Sudo tracd -p 8000 --basic-auth="YourProjectNameHere(工程名),/etc/apache2/dav_svn.passwd ,任意" /var/lib/trac/YourProjectNameHere/
(3).编辑/var/lib/trac/YourProjectNameHere/conf/trac.ini
在[components]中增加:
agiletrac.api.agiletracsystem = enabled
agiletrac.env.agiletracsetup = enabled
agiletrac.workflow.agileticketworkflow = enabled