红联Linux门户
Linux帮助

ubuntu 15.10安装coreseek记录

发布时间:2015-10-23 11:13:52来源:linux网站作者:inuxor

coreseek是著名的搜索引擎,对中文支持尤其好。 官网和网上都有安装说明,但是内容老旧,处处是坑。今天搜索了好多文章,最终成功。现在把填坑过程记录一下,方便后来者。


事前准备
安装编译环境和mysql客户端

sudo apt-get install make gcc g++ automake libtool mysql-client libmysqlclient-dev libxml2-dev libexpat1-dev python-dev

网上的文章如果照抄,在ubuntu15.10上是会报错的,就是libmysqlclient-dev这个东西,网文都无一例外的写为libmysqlclient15-dev,实际上新版ubuntu上已经没有这个包了。 另外python-dev也是个坑,ubuntu默认是没有安装这个包的,如果这一步不安装上,到最后make那一步会出错,提示没找到Python.h文件


下载coreseek源码包并解包

wget http://www.coreseek.cn/uploads/csft/4.0/coreseek-4.1-beta.tar.gz
tar xvf coreseek-4.1-beta.tar.gz
cd coreseek-4.1-beta


安装mmseg分词程序

cd mmseg-3.2.14
./bootstrap
./configure --prefix=/usr/local/mmseg3 //这里据说不用他默认的来会出问题,就没尝试
make
sudo make install
cd ..
cd csft-4.1


安装coreseek
修改一些文件

如果不做修改,编译会出问题,本文的重点就在这里。 文档上写着安装coreseek第一步是这样,这一步的目的是生成配置文件

sh buildconf.sh

然而如果你执行了这行代码,实际上是没能生成配置文件的,大概因为编译环境版本太新了,一些老脚本会有问题 下面我们手工纠正一下

vim csft-4.1/buildconf.sh //没有vim自行安装或用其他编辑器都行

显示为

#! /bin/sh

autoheader \
&& aclocal \
&& automake --foreign \
&& autoconf

找到automake行,修改为

#! /bin/sh

autoheader \
&& aclocal \
&& automake --foreign --add-missing \
&& autoconf

保存退出 还不算完

vim configure.ac

查找这一行:

AM_INIT_AUTOMAKE([-Wall -Werror foreign])

修改为:

AM_INIT_AUTOMAKE([-Wall foreign])

查找这一行:

AC_PROG_RANLIB

下一行追加:

AM_PROG_AR

最后还要修改源码:

vim src/sphinxexpr.cpp

查找如下代码,

T val = ExprEval ( this->m_pArg, tMatch );

并全部替换为:

T val = this->ExprEval ( this->m_pArg, tMatch );


正式安装coreseek

sh buildconf.sh
./configure --prefix=/usr/local/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql --with-python
make
sudo make install


大功告成。


Ubuntu Coreseek安装配置:http://www.linuxdiyf.com/linux/9070.html

coreseek-3.2.13兼容sphinx-0.9.9的配置:http://www.linuxdiyf.com/linux/7331.html