Installing Trac with Subversion 1.6
我正在尝试在我的服务器上设置 Trac 并已成功安装、编译字节码并运行 tracd 服务器。唯一的问题是它没有读取我的 SVN 存储库。
我收到的错误是:
Warning: Can't synchronize with the repository (Couldn't open Subversion repository /data1/repos: SubversionException: ("Expected FS format '2'; found format '4'", 160043)). Look in the Trac log for more information.
(是的,我的单个存储库位于一个名为"repos"的文件夹中 - 我没有设置那个位)
1 2 | repository_dir = /data1/repos repository_type = svn |
我正在运行:Trac 0.11.5、Python 2.4.3、Collabnet SVN 1.6.5、SWIG 1.3.29
您应该确保 python 绑定匹配您的 SVN 版本。
要获得绑定,您可以使用 SVN 源代码并编译package器,安装概述了如何构建该绑定的过程。
首先你必须下载svn源码
在 UNIX 上为 SVN 构建 SWIG 绑定
在构建 swig 绑定之后
Step 1: Install a suitable version of
SWIG (which is
currently swig version 1.3.24 - 1.3.31).
1 * Perhaps your distribution packages a suitable version - if itdoes
install it, and skip to the last bullet point in this section.
1 * Go to http://www.swig.org/, download the source tarball, andunpack.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 * In the SWIG-1.3.xx directory, run ./configure.
If you plan to build the Python bindings, and have a system
with more than one version of Python installed, you may need
to pass
--with-python=/path/to/correct/python/binary
to the configure script. You need Python 2.4 or above.
If you plan to build the Perl bindings, and have a system
with more than one version of perl installed, you may need
to pass
--with-perl5=/path/to/correct/perl/binary
to the configure script. You need Perl 5.8.0 or above.
* Build and install.
Run 'make && make install'
* To verify you have SWIG installed correctly, run"swig-version"
from the command line. SWIG should report that it is version
1.3.24
or newer.
然后是python的东西
Step 3: Install Specific Language
Bindings
Python
Run 'make swig-py' from the top of the Subversion source tree,
to build the bindings.(This will invoke SWIG on the *.i files, resulting in a collection
of .c source files. It will then compile and link those .c files
into
Python libraries.)Run 'make check-swig-py' from the top of the Subversion source
tree, to test the bindingsRun 'make install-swig-py' (as root, typically)
from the top of the Subversion source tree. This will copy
your new Python libraries into the appropriate system location.Note: If you don't have access to install to Python's site-packages
directory, you can have the Python modules install to your home
directory. You can do this by running
'make install-swig-py swig_pydir=~'.Note: If you want to install to an alternate prefix (usually only
if you are building packages), you can supply the prefix here. An
example of doing this for building rpms looks like
'make install-swig-py DESTDIR=$RPM_BUILD_ROOT/usr'.Make sure that whatever directory the bindings got installed
in
is in your Python search path. That directory depends on how you
installed; a typical location is /usr/local/lib/svn-python/.There are several ways to do this. See Python's documentation for
'sys.path' and 'PYTHONPATH'. A nice way to do this is:
$ echo /usr/local/lib/svn-python \\/usr/lib/python2.x/site-packages/subversion.pth
您可能还需要更新操作系统的动态链接器
配置以使 Python 能够加载这些新库。一些
系统这是通过运行 \\'ldconfig\\' 来完成的。
你的 python svn 库更新了吗?听起来它已经过时了。
可能是因为 Subversion Python 绑定是针对过旧版本的 Subversion 编译的,但鉴于 FS 格式 2 是 1.0 之前的版本,可能还有其他问题。您可以像这样获取 Subversion 客户端库版本:
1 2 3 4 5 6 7 | >>> import svn.client >>> svn.client.svn_client_version().major 1 >>> svn.client.svn_client_version().minor 6 >>> svn.client.svn_client_version().patch 5 |
看起来这些人非常彻底地回答了您的问题,但仅供参考:设置日志文件,以便您可以在下一个问题时阅读它。在你的 trac.ini 某处:
1 2 3 4 5 | [logging] log_file = trac.log # log_format = <inherited> log_level = DEBUG log_type = file |
之后,如果可能,尝试将 trac 部署到 apache - 使用 mod_python 或 FastCGI,trac 文档说它比运行 tracd 快得多。