使用xmlpipe2支持编译Sphinx

时间:2015-03-05 16:57:22

标签: xml sphinx mediawiki-extensions

我没有root用户访问我正在使用的计算机,所以我不能简单地使用包管理器来安装我需要的程序。因此,我一直在从源头编译它们。我已经成功编译了Apache和PHP并且托管了一个wiki。我现在想将SphinxSearch与MediaWiki设置一起使用。

我正在使用SQLite作为数据库,并且有using SphinxSearch with SQLite的说明,这需要使用libexpat编译SphinxSearch。

我一直试图让SphinxSearch在XML支持下进行编译,但我似乎无法得到它。 The only help I've found online说安装libexpat和libexpat-dev就像这样

apt-get install libexpat libexpat-dev

但是,由于我不是root用户,因此我无法像这样安装。所以我从源代码编译了libexpat:

wget http://sourceforge.net/projects/expat/files/expat/2.1.0/expat-2.1.0.tar.gz/download
tar xf expat-2.1.0.tar.gz
cd expat-2.1.0/
./configure --prefix=${BASE_PATH}/expat-2.1.0
make
make install

哪个编译libexpat完全没问题。接下来,我已将libexpat添加到LD_LIBRARY_PATHC_INCLUDE_PATH,如下所示:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${BASE_PATH}/expat-2.1.0/lib"
export C_INCLUDE_PATH="$C_INCLUDE_PATH:${BASE_PATH}/expat-2.1.0/include"

然后我去编译Sphinx:

wget http://sphinxsearch.com/files/sphinx-2.2.7-release.tar.gz
tar xf sphinx-2.2.7-release.tar.gz
cd sphinx-2.2.7-release
./configure --prefix=${BASE_PATH}/sphinx-2.2.7 --without-mysql --with-libexpat

然而,configure的输出给出:

...
checking whether to compile with re2 library support... no
checking whether to compile with RLP library support... no
checking for libexpat... checking for library containing XML_Parse... no
not found
configure: WARNING: xmlpipe2 will NOT be available
checking for libiconv... checking for library containing iconv... none required
found
checking for iconv() arg types... char **
...

那么,你知道如何让Sphinx找到一个包含" XML_Parse"的库吗?

更新:所以我能够通过在VM中编译来解决它(请参阅我在下面发布的答案以获取更多详细信息),但这是一个相当冗长的解决方案,应该是一个简单的问题。因此,如果有人发布了更好的解决方案,我会将其标记为最佳答案。

1 个答案:

答案 0 :(得分:1)

我能够通过设置虚拟机(使用VirtualBox)并在其中安装等效版本的Linux(我正在连接的服务器运行RHEL5,因此我安装了CentOS 5)来解决这个问题。然后,在VM上我使用以下方式设置环境:

yum groupinstall "Development tools"
yum install expat-devel

然后,我按照我在主服务器上尝试进行的正常编译。完成后,我只是tar / gzip生成的Sphinx文件夹并将其传输到主服务器。一切都很完美。

注意:在VM上编译Sphinx时,请确保设置将安装Sphinx的确切目录结构.Sphinx使用可执行文件内的输出前缀进行编译,因此需要具有路径按照您希望的方式设置。我不知道他们为什么不从配置文件中提取所有必需的路径。