Subversion 1.6.x(1.7.x) Python 2.6+ 绑定用于 Trac
我有一个Trac 0.12rc1(是别人定制的),它需要Python的Subversion绑定才能和svn仓库一起使用。但是我尝试编译这些库的所有方法都失败了:
在执行make命令时的最后一条命令:
/bin/sh /usr/local/src/subversion-1.6.20/libtool --tag=CC --silent --mode=compile gcc -pthread -fPIC -g -O2 -pthread -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -I/usr/local
/src/subversion-1.6.20/subversion -I/usr/local/src/subversion-1.6.20/subversion/include
-I/usr/local/src/subversion-1.6.20/subversion/bindings/swig -I/usr/local/src/subversion-1.6.20/subversion/bindings/swig/include
-I/usr/local/src/subversion-1.6.20/subversion/bindings/swig/proxy
-I/usr/local/src/subversion-1.6.20/subversion/bindings/swig/proxy
-I/usr/include/apr-1 -I/usr/include/apr-1 -I/usr/include/python2.6
-I/usr/local/src/subversion-1.6.20/subversion/bindings/swig/python/libsvn_swig_py
-prefer-pic -c -o subversion/bindings/swig/python/svn_client.lo subversion/bindings
/swig/python/svn_client.c
输出的最后一部分(每次看起来都一样):
subversion/bindings/swig/python/svn_client.c:23637: error: expected ‘)’ before ‘*’ token
subversion/bindings/swig/python/svn_client.c: In function ‘init_client’:
subversion/bindings/swig/python/svn_client.c:23690: error: ‘PyObject’ undeclared (first use in this function)
subversion/bindings/swig/python/svn_client.c:23690: error: ‘m’ undeclared (first use in this function)
subversion/bindings/swig/python/svn_client.c:23690: error: ‘d’ undeclared (first use in this function)
subversion/bindings/swig/python/svn_client.c:23693: error: ‘SwigMethods’ undeclared (first use in this function)
我尝试过的内容:
- Python:
- 2.4(可以用,但我们的Trac在这个版本上运行不正常)
- 2.6 “make swig-py”失败
- 2.7 “make swig-py”失败
- Subversion:
- 1.6.17
- 1.6.20
- 1.7.8
- SWIG:
- 2.0.9
- 1.3.29
有没有人成功为python2.6及以上版本构建Subversion绑定?这可能吗?能不能找到适合RHEL\OEL\CentOS 5.x的预编译二进制文件?
2 个回答
我联系了Trac用户的邮件列表,他们给我提供了一个解决方案。这个方案是针对rpm构建的spec文件的一个补丁。在把这个补丁应用到软件包后,一切都顺利了。
https://groups.google.com/d/topic/trac-users/BVVnh9I17Po/discussion
使用这个链接: http://egao1980.blogspot.com/2011/03/installing-trac-and-subversion-with.html
以下是从网站上复制的内容:
安装 RPMForge 仓库,使用命令
rpm -ihv http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
建议安装
yum install bash-completion
在
[base]
和[updates]
仓库中将 Subversion 列入黑名单
使用命令 vim /etc/yum.repos.d/CentOS-Base.repo
来编辑配置文件。
[base]
exclude=subversion
exclude=subversion-devel
...
[updates]
exclude=subversion
exclude=subversion-devel
...
从
www.wandisco.com
获取 Subversion 1.6.6 的安装脚本,并按照说明进行安装。安装 MySQL,使用命令
yum install mysql mysql-devel
安装 Python 2.5,Trac,并根据《在 CentOS 5 上安装 Python 2.5》和《在 CentOS 5 上安装 Trac》的说明重建 mod_python。
构建 Subversion 绑定:
获取 Sqlite:
wget http://www.sqlite.org/sqlite-autoconf-3070500.tar.gz
tar xzvf sqlite-autoconf-3070500.tar.gz && cd sqlite-autoconf-3070500 && make && make install
获取并构建 SWIG
wget http://downloads.sourceforge.net/project/swig/swig/swig-2.0.2/swig-2.0.2.tar.gz
tar xzvf swig-2.0.2.tar.gz && ./configure --with-python=/usr/bin/python25 --prefix=/usr && make && make install
构建 Python 2.5 的 Subversion 绑定
wget http://subversion.tigris.org/downloads/subversion-1.6.16.tar.bz2
tar xjvf subversion-1.6.16.tar.bz2 && cd subversion-1.6.16
./configure PYTHON=/usr/bin/python25 --with-sqlite=/usr/local && make && make swig-py && make install-swig-py
echo /usr/local/lib/svn-python > /usr/lib/python2.5/site-packages/svn.pth
到目前为止,你应该已经安装了 Subversion 1.6.6、Trac 0.12、MySQLDb 1.2.2,并且 mod_python 已经配置好可以与 Python 2.5 一起运行。