trac 0.12 安装

发布: 2012-07-25 10:06

Trac项目管理一直是我比较喜欢的,做的很强大,很精致。

距离上次使用有一段时间,记得上次安装的时候还是测试版本,只安装了个standalone模式运行,带基本功能的版本。


本次安装,还是基于trac-0.12的,不过这个版本已经非常成熟,安装起来更容易些了。

本次安装相比上次完整许多,实现了大多数的必备功能,包括如下功能,

*) 多resposity支持

*) svn与git库支持

*) 中文界面支持

*) 语法高亮支持

*) 与apache的整合

*) trac用户与认证

*) 一些钩子

*) 相关的依赖都安装到该trac目录下


1、安装环境

*) Centos 6.2 x86_64

*) python-2.6

*) subversion-1.7.5

*) apache-2.2


2、安装目录结构

*) /usr/local/apache

*) /usr/local/subversion

*) /usr/local/trac

*) trac实例 /usr/local/trac/env1

*) 与apache整合程序 /usr/local/trac/trac_with_apache

*) 主svn库 /data1/SVN/svnroot

*) 测试svn库 /data1/SVN/svntest

*) 测试git库 /data1/git/gittest1.git

*) 测试git库 /data1/git/gittest2.git


3、Trac基本程序安装

下载 Trac-0.12.tar.gz,解压,进入源码目录,

python setup.py install --prefix=/usr/local/trac


该命令把trac基本程序安装到/usr/local/trac目录。


4、测试Trac基本安装与standalone方式执行

创建tracenv

/usr/local/trac/bin/trac-admin initenv /usr/local/trac/env1

standalone启动,

首先设定python第三方路径环境变量,以便安装在非系统目录下的trac能正常执行。

export PYTHONPATH=/usr/local/trac/lib/python2.6/site-packages/:$PYTHONPATH

/usr/local/trac/bin/tracd -p 8000 /usr/local/trac/env1

使用浏览器访问http://localhost:8000/确定是否正常访问。

正常情况下,可浏览trac的主程序,包括wiki, timeline, ticks。

这一步非常简单,一般不会出现什么问题。



5、安装并设置中文界面支持功能

安装easy_install工具包,这个程序在python包setuptools中,

yum install setuptools

安装Babel

easy_install Babel --prefix=/usr/local/trac/

安装国际化包,返回Trac-0.12安装目录,

生成pot : python setup.py extract_messages

编译po: python setup.py update_catalog

检查你要的语言装了没: python setup.py update_catalog -l zh_CN

编译为mo: setup.py compile_catalog -f

覆盖安装trac: python setup.py install --prefix=/usr/local/trac

再次浏览器访问,可查看或者修改界面语言。


6、与svn/git版本库整合

现在返回到第4步中创建的trac env1目录,打开conf/trac.ini配置文件,

修改[trac]一节中的

repository_dir = /data1/SVN/svnroot

repository_type = svn

重启动tracd,可在trac界面中看到已经显示了svn库数据。

这一节设置的是trac的默认svn/git版本库,如果默认的使用git,repository_type 设置为 git。


安装git插件:

easy_install --prefix=/usr/local/trac http://github.com/hvr/trac-git-plugin/tarball/master

开启git功能,在该配置文件中添加一节:

[components]
tracext.git.* = enabled



添加更多的svn/git版本库功能,

在配置文件中添加这一节配置信息,

[repositories]
my_repo_a.dir = /data1/SVN/svntest
my_repo_b.dir = /data1/SVN/svntest2
gittest1.dir = /data1/git/gittest1.git
gittest1.type = git
gittest2.dir = /data1/git/gittest2.git
gittest2.type = git

注意,对于 my_repo_a 和 my_repo_b,没有指定相应的type值,表示使用[trac]配置中的版本库类型,

由于默认的是svn类型,对于gittest1和gittest2,需要显式指定其版本库类型为git。


重启tracd测试是否正常显示多版本库功能。


7、代码语法高亮支持

上面添加多个版本库,如果浏览库的源代码,现在源代码是没有语法高亮的。

这个功能非常必要,安装起来也比较简单,

easy_install Pygments --prefix=/usr/local/trac


重新启动tracd ,即可生效。


8、与apache整合及认证

这个稍微复杂一点,因为不但要为trac安装一些依赖,还要为apache安装依赖模块,

还有可能要重新编译subversion,添加必要的wsgi模块。

trac与apache 的整合有两种办法,使用mod_python,或者mod_wsgi,

由于前者项目已经停止,很久没有维护,trac官方推荐使用mod_wsgi方式整合。



安装subversion的wsgi包,进入subversion源代码目录,正常安装subversion后,

make swig-py && make install-swig-py

这一步把svn swig模块安装到subversion目录,查看/usr/local/subversion/lib/svn-python/libsvn/。


安装apache的mod_wsgi模块,检出模块源代码,hg clone https://code.google.com/p/modwsgi/,

cd modwsgi

./configure --prefix=/usr/local/apache-2.2.22 --with-apxs=/usr/local/apache-2.2.22

make && make install

注意,由于我们使用的是apache-2.2.x版本,不能使用modwsgi-3.3.tar.gz包,

必须使用代码库中的,最新版本的mod_wsgi。


配置apache,加载mod_wsgi模块,修改httpd.conf,添加加载模块指令,

LoadModule wsgi_module modules/mod_wsgi.so



生成与apache整合用的trac程序,

trac-admin /usr/local/trac/evn1 deploy /usr/local/trac/trac_with_apache

生成了cgi-bin中的脚本与htdocs中的页面文件。

下面一节将在apache配置中使用这些文件,实现访问trac的evn1的整合功能。


配置一个apache虚拟主机,添加与trac的整合访问地址:


DocumentRoot /usr/local/trac/trac_with_apache/htdocs
ServerName trac.qtchina.net
DirectoryIndex index.php
#WSGIScriptAlias /trac /usr/local/trac/trac_with_apache/cgi-bin/trac.wsgi
WSGIScriptAlias / /usr/local/trac/trac_with_apache/cgi-bin/trac.wsgi
SetEnv TRAC_ENV /usr/local/trac/teste1
SetEnv PYTHONPATH /usr/local/trac/lib/python2.6/site-packages:/usr/local/subversion17/lib/svn-python/

WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all


Options Indexes FollowSymLinks
AllowOverride All



AuthType Basic
AuthName "Trac"
AuthUserFile /data1/SVN/passwd.conf
Require valid-user




注意,其中设置的两个环境变量,trac.wsgi脚本的路径,访问路径,登陆路径和密码文件。

这里使用的是htpasswd生成的密码文件认证方式。



现在,可以退出tracd,使用apache的http://trac.qtchina.net:80端口访问trac了。

这一步,整合可能会出现几个问题,导致最后访问时出现500错误,请细心。



9、安装过程常见问题

httpd: Syntax error on line 54 of /usr/local/apache-2.2.22/conf/httpd.conf: Can't locate API module structure `mod_wsgi' in file /usr/local/apache-2.2.22/modules/mod_wsgi.so: /usr/local/apache-2.2.22/modules/mod_wsgi.so: undefined symbol: mod_wsgi

这个是因为modwsgi的版本低了,需要使用modwsgi-trunk中的版本。


ImportError: No module named trac.web.main

这个是因为apache虚拟主机配置中,没有正确设置PYTHONPATH。


Unsupported version control system "svn": No module named svnNo, trac uses subversion's SWIG bindings, not pysvn.

没有安装subversion的swgi-py支持包,make swig-py && make install-swig-py。


UnknownLocaleError: unknown locale 'zh_CN'

没有正确安装中文支持包。


500错误

上面几项都需要仔细检查,或者从头安装一遍更容易些。


提交svn后,trac显示不变

这是trac的一效率方面的策略,有一个svn版本的缓存,

在没有通知让trac更新之前,trac不会自动查看svn的版本改变。

使用trac-admin命令通知trac svn版本已经改变。

/usr/local/trac/bin/trac-admin /usr/local/trac/env1 changeset added /data1/SVN/svnroot




10、trac-admin命令行说明

/usr/local/trac/bin/trac-admin /usr/local/trac/env1/ help


原文: http://qtchina.tk/?q=node/668

Powered by zexport