我没有对我正在使用的计算机的 root 访问权限,所以我不能简单地使用包管理器来安装我需要的程序。因此,我一直在从源代码编译它们。我已经成功编译了 Apache 和 PHP,并托管了一个 wiki。我现在想在 MediaWiki 设置中使用 SphinxSearch。
我正在使用 SQLite 作为数据库,并且有使用 SphinxSearch 和 SQLite的说明,这需要使用 libexpat 编译 SphinxSearch。
我一直在尝试让 SphinxSearch 使用 XML 支持进行编译,但我似乎无法获得它。我在网上找到的唯一帮助说像这样安装 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_PATH
and中,C_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 中编译来解决它(有关更多详细信息,请参阅下面我发布的答案),但对于应该是一个简单问题的问题来说,这是一个相当冗长的解决方案。因此,如果有人发布了更好的解决方案,我会将其标记为最佳答案。