Ubuntu 18.04 安装 xunsearch 报错解决方案

/ 0评 / 3

前言

最近搭建 Flarum 论坛时需要支持中文搜索 [1],根据社区用户的建议使用 xunsearch,但是在 Ubuntu 服务器上安装的时候出现了一些问题,在此记录一下解决方案。

问题

使用的服务器以及安装的 xunsearch 的版本信息如下:

在执行 sh setup.sh 命令后,报错信息如下:

Configuring libevent ...
Compiling & installing libevent ...
-----
 static BIO_METHOD methods_bufferevent = {
                   ^~~~~~~~~~~~~~~~~~~
Makefile:793: recipe for target 'bufferevent_openssl.lo' failed
make[2]: *** [bufferevent_openssl.lo] Error 1

网上查了一下,是 xunsearch 安装包里的 libevent 版本(2.0.21)与系统 OpenSSL 版本(1.1.1)不兼容导致的,因为 libevent 要求 OpenSSL 版本低于 1.1.0。

这时候可以采取两种解决方案,升级 libevent 或降级 OpenSSL,根据网上的教程 [2,3] 决定使用新版本的 libevent。

大家给出的方法都是:首先手动下载 libevent-2.1.11-stable.tar.gz,然后转成 bz 压缩格式【点此下载】,最后将 libevent-2.1.11-stable.tar.bz2 放入 /xunsearch-full-1.4.15/packages/ 目录下,继续执行 setup.sh

理论上这样就可以解决问题,但实际上我在操作的时候发现遇到了新的报错,如下所示。

Installing libevent (2.1.11-stable) ... 
Extracting libevent package ...
tar: ./packages/libevent-2.1.11-stable.tar.bz2:归档中找不到
tar: 由于前次错误,将以上次的错误状态退出
setup.sh: 第 332 行: cd: libevent-2.1.11-stable: 没有那个文件或目录
Configuring libevent ...

tar 出现了“归档中找不到”的报错,网上说是把文件解压到一个新的目录需要加上 -C 参数,在折腾了一阵后依然没有解决问题。

方案

太长不看

删除 packages 目录下 2.0.21 这个较旧版本的 libevent 压缩包,这时再执行 setup.sh,问题解决。

详细流程

于是我查看了 setup.sh 脚本,通过朴素的打印调试大法,我定位到了相应代码片段(329-334行),如下所示。

if test "do_install" = "yes" ; then
  echo "Extracting libevent package ..."
  echo "taifu",new_file
  tar -xjf new_file  cd libevent-new_version
  echo "Configuring libevent ..."
  ./configure --prefix=$prefix >> ../setup.log 2>&1

这里大概的意思就是先解压,然后进入目录开始安装,但实际上命令行的输出中 $new_file 包含了两个版本(2.0.21 和 2.1.11)的 libevent 压缩包,如下所示。

Extracting libevent package ...
taifu, ./packages/libevent-2.0.21-stable.tar.bz2 ./packages/libevent-2.1.11-stable.tar.bz2
tar: ./packages/libevent-2.1.11-stable.tar.bz2:归档中找不到
tar: 由于前次错误,将以上次的错误状态退出
Configuring libevent ...

感觉应该就是这里起冲突了,使得 tar 出现“归档中找不到”的问题。于是我删除了 2.0.21 这个较旧版本的 libevent 压缩包,这时再执行 setup.sh 后,就只有一个版本的输出了。

Installing libevent (2.1.11-stable) ... 
Extracting libevent package ...
taifu, ./packages/libevent-2.1.11-stable.tar.bz2
Configuring libevent ...
Compiling & installing libevent ...

开始正常的安装,终于,安装成功了!

+=================================================+
| Installation completed successfully, Thanks you |
| 安装成功,感谢选择和使用 xunsearch              |
...

补充:后面我又测试了一下,使用 tar 解压两个文件时确实会出现“归档中找不到”的问题。

https://pic.taifua.com/Picture/website/xunsearch/tartest.png

心得

就删除一个文件的事我能写这么多也是个人才:)

以后注意遇到问题后除了网上搜索相关博客外,还得查看代码文件和报错日志,手动调试。

总的来说,还是自己动手,丰衣足食。不能指望网上的教程可以解决所有的问题。

参考

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注