参考文章:http://wiki.ubuntu.org.cn/Trac%E7%9A%84%E5%AE%89%E8%A3%85%E8%AE%BE%E7%BD%AE
还有一篇官方文档讲的也比较详细可以参考:http://trac.edgewall.org/wiki/TracInstall#Dependencies
参考文章中已经将Trac服务器的安装与配置讲的非常清楚了。按照文章中的方法,基本上就可以搭建成功。
Ubuntu + tracd 0.11.7 + svn,版本 1.6.12 (r955767)
最后有点迷惑的地方,就是Trac服务器的登录,或是权限认证的地方,讲的不是太清楚。
小菜我经过多次的尝试终于找到了一种权限认证的方式,但仍然也存在一些问题,比如和svn账户的同步等。
Trac简介
Trac是Edgewall公司推出的网页界面专案管理软件,尤其擅长软件BUG跟踪方面。
Trac使用Python编程语言开发。在2005年中以前,Trac以GPL发行;直到 0.9 版开始使用修改过的BSD许可证发布。基本上都是属于自由软件的许可证。该软件集成了增强的Wiki功能和版本控制功能,并可通过插件扩展其功能。
由于其插件众多、功能全面,甚至可以与很多商业的CMS系统媲美,安装也不复杂,因此应用也日益广泛。它的ticket管理及工作流插件(http://trac-hacks.org/) 使得它也可以很方便地进行简单的业务协作及流程控制。
配置SVN服务器
搭建SVN服务器,没什么可说的。参考:http://songxj.blog.51cto.com/620981/396113
本小菜创建的svn目录是:/home/robertkun/svn/repo
创建svn钩子程序:
mv /home/robertkun/svn/repo/hooks/post-commit.tmpl /home/robertkun/svn/repo/hooks/post-commit
chmod +x /home/robertkun/svn/repo/post-commit
修改post-commit 内容:
REPOS="$1"
REV="$2"
TRAC_ENV = "/home/robertkun/trac"
/usr/bin/python usr/share/doc/trac/contrib/trac-post-commit-hook -p "$TRAC_ENV" -r "$REV"
"$REPOS"/hooks/mailer.py commit "$REPOS" $REV "$REPOS"/mailer.conf
配置PostgreSQL数据库
安装PostgreSQL数据库很简单,只需要:
sudo apt-get install postgresql
为了让trac能访问PostgreSQL,则需要安装python-psycopg2模块:
sudo apt-get install python-psycopg2
启动PostgreSQL服务器daemon(命令中的版本号可能不同):
sudo /etc/init.d/postgresql-8.3 start
添加PostgreSQL用户和数据库
添加PostgreSQL用户和数据库也很简单,只需要输入下列命令:
sudo -u postgres sh (切换到postgres用户) createuser -A -D -P robertkun (创建robertkun用户,并提示输入密码,请输12345入以便和下文对应) Shall the new role be allowed to create more new roles? (y/n) y createdb -O robertkun trac (创建trac数据库) exit (退出postgres用户,回到正常用户提示行)
创建配置Trac环境
Trac用目录和数据库来储存项目信息, 叫做”环境“。一个新的Trac环境是通过使用trac-admin创建出来的,同Subversion一样,Trac环境可以放至在任意位置,由于Trac是个Web应用,是通过Apache来访问的,所以通常将其设在/var/www目录中。具体命令及设置如下:
cd /home/robertkun
mkdir trac
trac-admin trac initenv
Project Name [My Project]> kill (在这里输入你的项目名称)
Database connection string [sqlite:db/trac.db]>postgres://robertkun:12345@localhost/trac (输入PostgreSQL数据库的位置)
Repository type [svn]>(默认使用svn,回车)
Path to repository [/path/to/repos]> /home/robertkun/svn/repo (在这里输入你的项目对应的Subversion地址,注意Trac默认情况下只能访问本机的Subversion仓库,在上面填写地址时不能加"file://"前缀。)
小菜安装的时候到这一步提示成功。并没有出现下一步的提示。。
Templates directory [/usr/share/trac/templates]>/usr/share/pyshared/trac/templates
配置Trac的权限认证
I. 用户创建
Trac用htpasswd创建用户,从而可以和SVN等账号集成
trac-admin -c home/robertkun/trac/.htpasswd kill
添加kill用户。
为kill用户增加了TRAC_ADMIN权限
进入了命令行交互模式:
robertkun@ubuntu:~/trac$ trac-admin ~/trac/
Welcome to trac-admin 0.11.7
Interactive Trac administration console.
Copyright (c) 2003-2009 Edgewall Software
Type: '?' or 'help' for help on commands.
Trac [/home/robertkun/trac]> permission add kill TRAC_ADMIN
II. 用户权限设置
依照前面的设置,虽然需用用户认证才能访问Trac,但是进入之后还是不能进行更多的管理操作。
trac-admin home/robertkun/trac
就进入了命令行交互模式。
1. 查看所有用户及权限.
运行
Trac [/home/robertkun/trac]>permission list
User Action
------------------------------
anonymous BROWSER_VIEW
anonymous CHANGESET_VIEW
anonymous FILE_VIEW
anonymous LOG_VIEW
anonymous MILESTONE_VIEW
anonymous REPORT_SQL_VIEW
anonymous REPORT_VIEW
anonymous ROADMAP_VIEW
anonymous SEARCH_VIEW
anonymous TICKET_VIEW
anonymous TIMELINE_VIEW
anonymous WIKI_VIEW
authenticated TICKET_CREATE
authenticated TICKET_MODIFY
authenticated WIKI_CREATE
authenticated WIKI_MODIFY
kill TRAC_ADMIN
Available actions:
BROWSER_VIEW, CHANGESET_VIEW, CONFIG_VIEW, EMAIL_VIEW, FILE_VIEW,
LOG_VIEW, MILESTONE_ADMIN, MILESTONE_CREATE, MILESTONE_DELETE,
MILESTONE_MODIFY, MILESTONE_VIEW, PERMISSION_ADMIN, PERMISSION_GRANT,
PERMISSION_REVOKE, REPORT_ADMIN, REPORT_CREATE, REPORT_DELETE,
REPORT_MODIFY, REPORT_SQL_VIEW, REPORT_VIEW, ROADMAP_ADMIN, ROADMAP_VIEW,
SEARCH_VIEW, TICKET_ADMIN, TICKET_APPEND, TICKET_CHGPROP, TICKET_CREATE,
TICKET_EDIT_CC, TICKET_EDIT_DESCRIPTION, TICKET_MODIFY, TICKET_VIEW,
TIMELINE_VIEW, TRAC_ADMIN, WIKI_ADMIN, WIKI_CREATE, WIKI_DELETE,
WIKI_MODIFY, WIKI_VIEW
修改trac配置文件:/home/robertkun/trac/conf/trac.ini,
在文件末尾添加:[components]
#啟用 WebAdmin 外掛程式
webadmin.* = enabled
#啟用 IniAdmin 外掛程式
iniadmin.iniadmin.iniadminplugin = enabled
#啟用 TracWysiwyg 外掛程式
tracwysiwyg.* = enabled
#啟用 SvnAuthzAdmin 外掛程式
svnauthz.* = enabled
#啟用 AccountManager 外掛程式
acct_mgr.api.accountmanager = enabled
acct_mgr.htfile.HtPasswdStore = enabled
#關閉預設的 Http 登入認證方式,改用 AccountManager 的登入認證
trac.web.auth.LoginModule = disabled
acct_mgr.web_ui.LoginModule = enabled
#啟用帳號管理
acct_mgr.admin.AccountManagerAdminPage = enabled
#允許用戶變更密碼、刪除帳號
acct_mgr.web_ui.AccountModule = enabled
[account-manager]
password_format = htpasswd
password_file = /home/robertkun/trac/.htpasswd
password_store = HtPasswdStore
配置Apache
小菜一开始的时候,也是按照参考文章的做法,一步步的配置Apache,但后来发现Apache并没有起作用。关掉Apache 服务器照样可以登录Trac。Trac服务器和Apache的关系也就没有搞的太清楚。也罢,能用就行了,还请高人指点。
启动Trac服务器
tracd -p 8000 home/robertkun/trac/
在浏览器中输入:http://localhost:8000/