Trac 是一个为软件开发项目需要而集成了 Wiki 和问题跟踪管理系统的应用平台,是一个开源软件应用。 Trac 以简单的方式建立了一个软件项目管理的 Web 应用,以帮助开发人员更好地写出高质量的软件。
Trac 是采用Python 语言开发的,因此Trac 的在运行的时候,需要有Python 环境的支持。
本安装时在Ubuntu 10.4中安装,系统自带Python2.6.5,需下载 apache2,Trac0.12,subversion1.6.13,mysql/pg.
安装 apache2和 subversion1.6.13在这里就不在详说。
http://trac.edgewall.org/wiki/TracInstall 这个页面告诉大家再安装Trac需要的前提条件以及怎样安装。按照这里的说明就可以安装完成,但中间也会出现这样那样的问题。
Python-dev安装,系统没有带开发包,所以要apt-get install Python-dev;
下载setuptools(http://pypi.python.org/pypi/setuptools)找到符合系统python版本的setuptools,然后执行
sh setuptools-0.6c9-py2.4.egg --prefix=~ 安装;
easy_install Genshi 安装genshi,www.linuxidc.com让系统自己去找最合适的版本软件安装;
apt-get install libsqlite3-dev
http://sourceforge.net/projects/mysql-python/下载mysql-python,按照Reame指示安装即可
安装mod_wsgi (http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac)和mod_wsgi (http://modpython.org/),
./configure --with-apxs=/XXX/bin/apxs make 出现如下错误
connobject.c: 在函数‘ _conn_read ’中 :
connobject.c:142: 错误: 在非结构或联合中请求成员 ‘ next ’
apxs:Error:Command failed with rc=65536
make[1]:
*** [mod_python.so] 错误 1
make[1]: 正在离开目录
`/root/sourceCode/httpd-2.2.15/modules/python/mod_python-3.3.1/src'
make: *** [do_dso] 错误 2
解决方法: 修改 connobject.c 第 142 行 把 !(b== APR_BRIGADE_SENTINEL(b) ||
改为 !(b== APR_BRIGADE_SENTINEL(bb) ||
安装 easy_install Babel,docutil,pygments,pytz
解压trac进入问价之后,执行python ./setup.py install 即可,安装完成.
测试:
1)运行命令python进入python运行环境
2)输入以下python代码进行测试
import MySQLdb
test=MySQLdb.connect(db='mydb',host='myhost',user='u',passwd='p')
cur = test.cursor()
cur.execute('show databases;')
for data in cur.fetchall():
print data
3)一旦你在屏幕上看到了你几个数据库的库名的输出代表你安装成功了
注:问题:ImportError: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory
原因是python无法找到mysql目录下的libmysqlclient_r.so.16动态库,其实MySQLdb是调用mysql的c函数库.所以本机上首先得安装了mysql
然后: ln -s /**/mysql/lib/mysql/libmysqlclient_r.so.16 /usr/lib
最后重新再测试一下,就不会有上面的问题了
配置
NameVirtualHost IP:8089
<VirtualHost IP:8089>
<location /trac>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /app/apache/htdocs/trac
PythonOption TracUriRoot /trac/
PythonOption PYTHON_EGG_CACHE /tmp/egg-cache
Order allow,deny
Allow from all
AuthType Basic
AuthName "trac"
AuthUserFile /data/svn/svn_password
Require valid-user
</location>
ErrorLog "logs/trac_error_log"
CustomLog "logs/trac_access_log" common
</VirtualHost>
配置root为管理员权限,只有这样配置了,才可以在页面上有admin显示出来,否则没有
trac-admin hello_project permission add root TRAC_ADMIN