Trac作为项目管理的重要工具,为团队协助注入了大量的互动。
Trac的介绍可以参考官方网站:http://trac.edgewall.org/。
简单而言,它是最轻量级的项目管理系统,它提供以下功能:
1、Wiki,简单的文档编辑与文档分享;
2、Timeline,跟踪最近项目更新;
3、Roadmap,项目状况;
4、Browse Source,源码查看,更新查看;
5、Ticket,传票系统。
==========================================
Trac的安装
官方网站的安装说明:http://trac.edgewall.org/wiki/TracInstall
必要依赖:1、python;2、setuptools;3、Genshi;4、数据库(可以使用文件夹形式的)
可选依赖:1、subversion;2、web服务,如httpd,也可以用buildin的服务tracd,建议使用httpd。
=================================================================
Trac项目的生成与基本配置
$ mkdir /var/www/trac $ trac-admin /var/www/trac/search-proxy initenv注意:search-proxy为项目目录,之后的配置都在目录中进行,trac是基于单个项目进行管理的。
由于使用httpd进行管理,我们赋予目录整体apache权限
$ chown -R apache:apache /var/www/trac配置httpd,使其可以被访问
<Location /trac> SetHandler mod_python PythonInterpreter main_interpreter PythonHandler trac.web.modpython_frontend PythonOption TracEnvParentDir /var/www/trac PythonOption TracUriRoot /trac/ PythonOption PYTHON_EGG_CACHE /tmp/ </Location> <LocationMatch "/trac/[^/]+/login"> AuthType Basic AuthName "Trac Authorization Realm" #以下为LDAP服务配置 AuthBasicProvider ldap AuthzLDAPAuthoritative off #LDAP连接 AuthLDAPURL "ldap://199.155.122.90:10389/ou=users,dc=taotaosou.com?cn?sub?(objectClass=person)" require valid-user </LocationMatch>
$ service httpd restart
抽取静态资源:
$ trac-admin /var/www/trac/search-proxy deploy /var/www/trac/search-proxy据说可以提高性能,此处我主要用来添加logo图片。
$ cp logo.png /var/www/trac/search-proxy/htdocs修改配置文件conf/trac.ini
[header_logo] alt = Taotaosou height = -1 link = http://199.155.122.90/trac/search-proxy src = site/logo.png width = -1刷新页面可发现logo已经生效,至此基本的安装与配置已经完成
Trac项目配置
授权
假设admin为目前项目可登录用户(配置在LDAP中)
$ trac-admin /var/www/trac/search-proxy permission add admin TRAC_ADMIN
以下解答SVN配置:
进入svn管理页面:http://199.155.122.90/trac/search-proxy/admin/versioncontrol/repository
添加本地的svn地址/var/www/svn/search-proxy,并起名search-proxy,填写url http://199.155.122.90/svn/search-proxy
trac-admin /var/www/trac/search-proxy/ repository resync search-proxy即可完成同步,注意:必须开启相关的插件,否则报错。
Resyncing repository history for search-proxy... 17 revisions cached. Done.