trac的安装,配置,管理,用户添加,中文国际化
http://trac.edgewall.org/wiki/TracL10N 【中文国际化】
说多了都是泪
一. 中文支持
首先安装:easy_isntall babel==0.6
其次下载:Trac-0.12.5.tar.gz 【记住是tar.gz】 http://trac.edgewall.org/wiki/TracDownload#PreviousStableRelease
安装中文支持【坑惨了】
1. 生成pot
python setup.py extract_messages
2. 编译po(这里可以指定编译为哪种语言,不指定就是全部)
python setup.py update_catalog -l zh_CN
3. 编译为mo
setup.py compile_catalog -f
4. 安装trac
python setup.py install
我是在win上安装的,上面的做完你以为就是中文了,不可能!!请看下面
将安装包里面的,这里是【C:\Python27\Lib\site-packages\Trac-0.12.5-py2.7.egg\trac\locale】里的zh_CN文件夹复制为zh_Hans_CN ,这里真心坑,因为trac不读zh_CN
注意:不过好像【用户定制】里面有个选择语言,我没有测试过
二.使用
初始化Trac环境:
debian~:# trac-admin c:/trac_re initenv
/root/trac目录不用事先创建,Trac会自动创建。初始化时,trac-admin程序会问你项目名、数据库连接字串和Subversion库位置这三个参数。如果你的数据库是使用SQLite,则它的连接串是sqlite:db/trac.db,系统已默认指定了。所有初始化参考都会保存在/root/trac/conf/trac.ini文件中。
启动Trac服务:
debian~:# tracd --port 8000 c:/trac_re
使用浏览器访问"http://localhost:8000"即可访问Trac系统了【这里可以看到中文系统】
三.用户
http://chinaxiangf.blog.163.com/blog/static/79714331201182113950571/
在Trac中,添加、删除、配置用户账户以及身份验证的过程依赖于运行Trac的方式,也就是使用哪种方式、在哪种Web服务器上运行Trac。
下面介绍使用Tracd时如何管理用户帐号以及进行身份验证。
在以前的讲解中,我们建立了一个Angel项目的Trac环境,用以下的命令:
C:\Python24\Scripts>..\python tracd -p 8001 C:\SCM\Angel\Angel_Trac
来运行Trac环境。
虽然使用浏览器访问该项目时,页面上方也有一个“Login”连接,但是是无法使用的,点击了会报错,提示:
“Authentication information not available. Please refer to the installation documentation.”
这是因为我们没有为该项目设置用户、分配权限和密码。要使Login可用,我们需要做以下三个工作:
1. 创建用户并分配权限
过程如下图:

现在我们的Angel项目有了一个admin的用户,是Trac的管理员。
2. 给用户设定密码
Tracd支持Basic和Digest两种身份验证方式,默认使用Digest,在这里只介绍Digest方式,这是来源于Apache的用户管理和身份验证方式。
Digest方式需要提供一个特定格式的密码文件,可以使用Apache的htdigest命令来生成密码文件。如果没有Apache,可以使用下面的python脚本来生成密码(我就是使用的这种方式)
from optparse import OptionParser import md5 # 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") (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") # Generate the string to enter into the htdigest file realm = 'trac' kd = lambda x: md5.md5(':'.join(x)).hexdigest() print ':'.join((options.username, realm, kd([options.username, realm, options.password])))
将上面的代码保存到一个新文本文件中,并重命名该文件的扩展名为py(假定修改后该文件是
trac-digest.py,放在了C:\SCM目录),使用下面的命令
python trac-digest.py -u username -p password >> c:\digest.txt
具体到我们的项目就是
C:\Python24>python c:\scm\trac-digest.py -u admin -p admin >>c:\scm\digest.txt
会在c:\scm\目录下生成一个digest.txt的密码文件,该文件的格式是“用户名:范围名(readlm名称,默认是trac):密码的密文”。
如下图

可以多次执行上面的命令在一个密码文件中为多个用户设定密码。
3. 使用带验证选项的行命令启动tracd
命令如下
tracd -p 8080 --auth=project1,/path/to/users.htdigest,mycompany.com /path/to/project1
或者
tracd -p 8080 --auth=*,/path/to/users.htdigest,mycompany.com /path/to/project1
具体到我们的项目就是
C:\Python24\Scripts>..\python tracd -p 8001 --auth=Angel_Trac,c:\scm\digest.txt,trac C:\SCM\Angel\Angel_Trac
或者
C:\Python24\Scripts>..\python tracd -p 8001 --auth=*,c:\scm\digest.txt,trac C:\SCM\Angel\Angel_Trac
需要注意:
a.红色的部分,是realm(范围),在行命令中的realm必须与生成密码文件的脚本总的realm相同。
b.蓝色的部分,也就是--auth的第一个参数,不是项目名称,是Trac环境全路径的最后一个目录。
四.trac的备份和恢复
- sudo trac-admin /var/www/trac hotcopy /home/trac_bak
恢复也很简单,将备份的文件复制到服务器相应的位置,并注意将文件夹用户修改为apache用户,即:
- scp -r /home/trac_bak root@115.156.219.42:/home/trac/trac #远程拷贝
- sudo chown -R www-data:www-data /home/trac/trac
- sudo trac-admin /home/trac/trac upgrade
- sudo trac-admin /home/trac/trac wiki upgrade