Archive for August, 2007

windows下的Trac安装配置

之前在ubuntu下装过几次,这下因为事先已经把svn装在了windows下,因此要在windows下再装一把.

还算比较简单,主要参考了rocksun的文章(原文出处找不到了…)以及bugx的文章(http://blog.nowans.com/content/log.2007.1.25.191.html).

我自己遇到了哪些重点问题再记录一下.

首先是下载各大安装包.

Python: http://www.python.org/ftp/python/2.4.4/python-2.4.4.msi
Clearsilver: http://www.clearsilver.net/downloads/win32/clearsilver-0.9.14.win32-py2.4.exe
Pysqlite: http://initd.org/pub/software/pysqlite/releases/2.3/2.3.2/pysqlite-2.3.2.win32-py2.4.exe
svn-python: http://subversion.tigris.org/downloads/svn-python-1.4.4.win32-py2.4.exe
Trac: http://ftp.edgewall.com/pub/trac/trac-0.10.4.win32.exe
其次先装Python,然后你可以考虑按照上步的顺序依次安装.这里有个重点就是这台机器之前已经装过python了,是在安装plone时自带的,但没有注册到系统中,所以pysqlite安装时会不认,不得不重装了个2.4版本的.这台机器之前还装过了svn,但装的是svn-win32版本的,所以trac安装时也会不认,不得不补装个svn-python.这样就应该可以顺利到安装完所有的工具了.最后提醒一下要在path里增加python安装的路径.

然后配置svn(这里不敖述,主要是svnadmin create得创建一个代码仓库).

最后配置trac.

前提: trac安装时相关命令都默认放在了python安装目录下的scripts目录中.

1) 创建项目(假设叫目录叫trac,项目名叫sdk,当然相同更好)
python.exe trac-admin d:\trac initenv
注意输入项目名和项目对应的SVN仓库地址,这一点和linux下trac配置相同.

2) 创建用户
python.exe trac-digest.py -u cyndi -p 123456 >> d:\trac\passwd.digest
注意这里的trac-digest.py哪里来呢?
这一步linux使用的是htdigest命令来创建用户,可是windows下大部分人是使用apache工具的,但我不打算再装个apache,因此借鉴了bugx的一篇文章.

把下面这段代码存为trac-digest.py(可以放在python安装目录下的scripts目录中):

  1. from optparse import OptionParser
  2. import md5
  3.  
  4. # build the options
  5. usage = "usage: %prog [options]"
  6. parser = OptionParser(usage=usage)
  7. parser.add_option("-u", "--username",action="store", dest="username", type = "string",
  8.                   help="the username for whom to generate a password")
  9. parser.add_option("-p", "--password",action="store", dest="password", type = "string",
  10.                   help="the password to use")
  11. (options, args) = parser.parse_args()
  12.  
  13. # check options
  14. if (options.username is None) or (options.password is None):
  15.    parser.error("You must supply both the username and password")
  16.  
  17. # Generate the string to enter into the htdigest file
  18. realm = 'njg'
  19. kd = lambda x: md5.md5(':'.join(x)).hexdigest()
  20. print ':'.join((options.username, realm, kd([options.username, realm, options.password])))

3) 授权用户
trac-admin d:/trac/ permission add cyndi TRAC_ADMIN
注意这里TRAC_ADMIN是超级管理员权限,这一点和linux下trac配置相同.

4) 启动Trac
tracd -p 8000 –auth *,d:/trac/passwd.digest,njg d:/trac/
注意事实上第2)和第3)步是可以忽略的,没有用户trac也一样用,如果不使用用户管理的话,启动trac可以这样:tracd -p 8000 d:/trac/,这一点和linux下trac配置相同.

补充一点:上面这个auth前面是两个-,p前面是一个-.

Comments (18)