SVN+Trac(VisualSVN-Server-2.1.4+Trac-0.12.1.win32) 安装手记
文/arkelee
VisualSVN官方有Trac插件,集成了python和trac0.11,但不提供技术支持。想要即装即用的请出门右转到官网下载:
http://www.visualsvn.com/server/trac/
我当时放弃,就是为了使用trac 0.12版,有两个原因,第一支持多仓库,第二中文支持完善。
Trac因为各个模块相互的版本依赖关系以及之间的升级同步问题,并没有一个最新的集成包可以即装即用。本来我可以将我设置好的做成包分享出来,但秉着授人以鱼不如授之于渔的精神,详细列出我的安装手记,其中的版本我都是从各官网下的最新版(除了Python),因此大家需要的时候可以自行下载各个组件按照步骤安装。
1. SVN服务器端
VisualSVN-Server-2.1.4.msi
集成了Subversion 1.6.13,Apache 2.2.13
2. SVN客户端
TortoiseSVN-1.6.11.20210-win32-svn-1.6.13.msi
中文语言包
LanguagePack_1.6.11.20210-win32-zh_CN.msi
3. Trac-0.12.1.win32.exe
http://trac.edgewall.org/
4. Trac依赖包
* 是Trac0.12版本依赖要求
是我使用的包
$ 是控制台命令
* Python, version >= 2.4 and < 3.0
python-2.6.6.msi
* setuptools, version >= 0.6
setuptools-0.6c11.win32-py2.6.exe
* Genshi, version >= 0.6
Genshi-0.6.win32.exe
* docutils, version >= 0.3.9 for WikiRestructuredText.
$ esay_install docutils
* Pygments for syntax highlighting.
$ easy_install Pygments-1.3.1-py2.6.egg
$ easy_install pytz-2010l-py2.6.egg
* Babel-0.9.5.win32.exe
5. 以上都按照Trac官方安装说明,按部就班即可,下面是将Subversion与Trac集成。
Trac官网介绍的都是以Apache做例子的,但是因为我之前已经安装的了VisualSVN,所以想使用VisualSVN+Trac。
VisualSVN官网给到包使用的是mod_python,这个包已经停止开发了,Trac官网建议使用mod_wsgi。
VisualSVN Server集成的是Apache+Subversion+WindowsMSC,但是没有提供Python绑定包。
http://alagazam.net/上有比较全的Subversion发布包,包括各种绑定,不过因为是VC++6编译器编的,跟VisualSVN不兼容,我们为了要使用它的Python绑定,连可执行文件都要一起替换。
到http://alagazam.net下载两个包svn包和svn-py包:
svn-win32-1.6.13.zip
解压然后拷贝bin文件夹下所有dll文件到VisualSVN对应bin文件夹
$ copy /y /bin/*.dll /VisualSVN Server/bin/
svn-win32-1.6.13_py.zip
解压然后分别拷贝libsvn和svn文件夹下所有文件到Python安装路径的/Lib/site-packages/文件夹。
将_*.dll后缀名改为pyd
$ cd libsvn
$ copy * D:/Python26/Lib/site-packages
$ ren _*.dll _*.pyd
$ cd svn
$ copy * D:/Python26/Lib/site-packages
6. 至此安装完成,下面初始化Trac工作目录,如下
A new environment is created using trac-admin:
$ trac-admin /path/to/myproject initenv
$ trac-admin /path/to/myproject deploy /tmp/deploy
7. 修改trac.ini
for trac.ini
[trac]
repository_sync_per_request =
[repositories]
project.dir = /var/repos/project
project.description = This is the ''main'' project repository.
project.type = svn
project.url = http://example.com/svn/project
lib.dir = /var/repos/lib
lib.description = This is the secondary library code.
lib.type = svn
lib.url = http://example.com/svn/lib
.alias = project
.hidden = true
8. 下载并设置mod_wsgi
将最新版的mod_wsgi文件重命名为mod_wsgi.so,复制到/VisualSVN Server/bin文件夹下
mod_wsgi-win32-ap22py26-3.3.so => mod_wsgi.so [../VisualSVN Server/bin]
9. 编辑VisualSVN Server的conf(实际是集成的Apache)
打开 ../VisualSVN Server/conf/httpd-custom.conf
加入以下
LoadModule wsgi_module bin/mod_wsgi.so
LoadModule authz_user_module bin/mod_authz_user.so
WSGIScriptAlias /trac D:/Trac/cgi-bin/trac.wsgi
<Directory D:/Trac>
WSGIApplicationGroup %{GLOBAL}
# Order deny,allow
# Allow from all
</Directory>
<Location '/'>
AuthType Basic
AuthName "Trac"
AuthUserFile D:/Repositories/htpasswd
Require valid-user
</Location>
10. 设置trac与svn仓库的同步,这里设置成仓库的任意改变都将更新trac资料库
$trac-admin $ENV repository resync '*'
11. 别忘了添加系统变量和系统路径
PYTHONHOME=%ProgramFiles%/Python26
PATH=
%SystemRoot%/system32;%SystemRoot%;%SystemRoot%/System32/Wbem;D:/Program Files/VisualSVN Server/bin;D:/Program Files/TortoiseSVN/bin;D:/Dev/Python26;D:/Dev/Python26/Scripts;