Trac 安装手记
初步阅读了一下安装文档 http://trac.edgewall.org/wiki/TracInstall,发现如果是python 2.5 以上安装会比较方便。检查一下python的版本,发现是比较低的版本,打算升级一下python。到python的官网准备下载,赫然发现 http://www.python.org/download/ 被墙,心中默念“F*CK GFW ”500遍。于是向系统组同事索取,得到了python 2.6。按照说明,逐一安装之:
安装python 2.6
- 在 /usr/local 下,
- tar –xzvf python-2.6.2.tgz
- ./configure; make; make install
- 验证python版本ok (在PATH中 /usr/local/bin 比 /usr/bin 靠前,原来的版本在 /usr/bin下)
- 安装 easy_install。下载http://pypi.python.org/pypi/setuptools#downloads;直接命令行下 sh setuptools-0.6c9-py2.5.egg
安装Trac
按照文档的说法,用easy_install 按装,执行 easy_install Trac==0.12,第一次尝试,发现下载超时,因为我们是在代理后面,需要设置代理
- export HTTP_PROXY="http://your.proxy.com:yourPort",然后再执行 easy_install ,还是出错,发现下载安装包采用的是 ftp://ftp.edgewall.com/pub/trac/Trac-0.12.tar.gz,我们的代理不支持,又找了一下资料,发现这样:
- easy_install -f http://ftp.edgewall.com/pub/trac/Trac-0.12.tar.gz Trac==0.12,指定安装包的位置,安装成功了
配置Trac
- makdir /data/trac/tuan
- trac-admin /data/trac/tuan initenv,这里指定项目的名称,数据库连接串之类的信息,项目名称用在url中来访问该项目
- tracd –p 80 /data/trac/tuan (-d 参数,使trac以deamon形式运行在后台)
- 在浏览器,用http://domain/tuan 就可以看到这个项目了
- 多个项目的话,各个项目都在同一目录下,比如 /data/trac/ 每个目录一个项目,用命令 tracd –e /data/trac 即可
身份认证
没有设置身份认证时,只能匿名浏览,点击login,会报错。具体的配置方法参见:http://trac.edgewall.org/wiki/TracStandalone, Trac可以用apache的用户、密码文件,用 htpasswd 命令,需要安装 apache,我不想装了。也可以不用apache:
- 编制一个python文件,比如user.py
from optparse import OptionParser # The md5 module is deprecated in Python 2.5 try: from hashlib import md5 except ImportError: from md5 import md5 realm = 'trac' # build the options usage = "usage: %prog [options]" parser = OptionParser(usage=usage) parser.add_option("-u", "--username",action="store", dest="username", type = "string", help="the username for whom to generate a password") parser.add_option("-p", "--password",action="store", dest="password", type = "string", help="the password to use") parser.add_option("-r", "--realm",action="store", dest="realm", type = "string", help="the realm in which to create the digest") (options, args) = parser.parse_args() # check options if (options.username is None) or (options.password is None): parser.error("You must supply both the username and password") if (options.realm is not None): realm = options.realm # Generate the string to enter into the htdigest file kd = lambda x: md5(':'.join(x)).hexdigest() print ':'.join((options.username, realm, kd([options.username, realm, options.password]))) - 执行这个文件,把生成的用户名密码保存到一个文件中去
python trac-digest.py -u username -p password >> c:\digest.txt
- 启动trac,就ok了
tracd -d --auth="*,/data/trac/passwd/user.digist,pconline" -e /data/trac/projects/
授权
身份认证完成后,就要进行授权,否则很多功能也是不能用,比如 road map 不能修改,不能新建 Tickets 等等。授权命令很简单:
trac_admin /data/trac/projects permission add <username> TRAC_ADMIN
然后就可以访问页面上的 “admin” 标签了,可以进行更细致的授权和其他管理
后续任务
做完这些,整个的 TRAC 环境就可以用了,后续还可以做一些更深入的配置和定制,比如本地化、集成svn、和开发工具集成(netbeans/eclipse)。其实后面最大的任务是如何使用这个工具已达到改善和提高开发的目的,因为有很多同事看到这个工具感到一头雾水,不知道这个东西是用来做什么的,这是要解决的第一个问题,要实际用起来。
