这是一篇关于如何搭建viewvc来更好的通过WEB展示svn记录的笔记。
工作环境为RedHat EL4
Linux MYSERVER 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:30:39 EST 2005 i686 i686 i386 GNU/Linux
首先,viewvc同时支持CVS和Subversion,最开始是为CVS系统开发,不过由于SVN系统近来的流行,viewvc也开始支持svn系统了。
- 下载viewvc
$ wget http://www.viewvc.org/nightly/viewvc-1.1-dev-20070307.tar.gz
- 安装viewvc
$ ./viewvc-install
- 编辑viewvc配置文件 viewvc.conf
root_parents = /home/userhome/zztest/svn_dir : svn,
# /home/cvs-repositories : cvs
同时你还可以在 viewvc.conf 中找到一些可选配置,比如PHP语法高亮等。 - 在 Apache 的配置文件中加入viewvc配置,并加如HTTP验证功能
Alias /webview /usr/local/viewvc-dev/bin/cgi/
DirectoryIndex viewvc.cgi
AddHandler cgi-script .cgi
Options ExecCGI FollowSymLinks
AllowOverride None
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /usr/local/viewvc-dev/viewpasswd.conf
Require valid-user
Order allow,deny
Allow from all
- 这时当你在WEB上查看viewvc时,可能会提示
viewvcImportError: No module named svn
这是因为 python 还需要一个和你工作的svn系统进行联系的库,在svn的原代码中可以进行编译并安装,前提是需要安装 swig 这个软件包,还好在大多数LINUX发行版中,这个软件包是默认安装的。你可以用
$ which swig
这样的命令来验证,如果没有安装上,可以安装一个。接下来你可能需要通过这样的方式,重新编译并安装svn软件包$ ./configure --codefix=/usr/local --with-apxs=/usr/local/bin/apxs --with-berkeley-db=/usr/local PYTHON=/usr/local/bin/python2.5
$ make
$ sudo make install
$ make swig-py
$ make install-swig-py
现在你的viewvc就可以正常工作了。 - 最后你还可以对viewvc安装目录中的 python 代码和 template 模板文件进行修改来满足你的需求。
UPDATE 在编译的时候,使用VIEWVC可能会遇到象这里描述的问题,不过这里有解决方法,可以参考 ;)
Indexing repository
Failed to initialize environment. /usr/local/lib/libsvn_ra_dav-1.so.0: undefined symbol: gss_delete_sec_context
Traceback (most recent call last):
File "/usr/lib/python2.3/site-packages/trac/scripts/admin.py", line 616, in do_initenv
repos = self.__env.get_repository()
File "/usr/lib/python2.3/site-packages/trac/env.py", line 155, in get_repository
from trac.versioncontrol.svn_fs import SubversionRepository
File "/usr/lib/python2.3/site-packages/trac/versioncontrol/svn_fs.py", line 25, in ?
from svn import fs, repos, core, delta
File "/usr/local/lib/svn-python/svn/fs.py", line 19, in ?
from libsvn.fs import *
File "/usr/local/lib/svn-python/libsvn/fs.py", line 5, in ?
import _fs
ImportError: /usr/local/lib/libsvn_ra_dav-1.so.0: undefined symbol: gss_delete_sec_context
把 Makefile 的
SVN_APR_LIBS = /home/rob/build/subversion-1.4.2/apr/libapr-0.la -lrt -lm -lcrypt -lnsl -lpthread -ldl
改为
SVN_APR_LIBS = /home/rob/build/subversion-1.4.2/apr/libapr-0.la -lrt -lm -lcrypt -lnsl -lpthread -ldl -L/usr/kerberos/lib -lgssapi_krb5 -lkrb5 -lk5crypto
No comments:
Post a Comment