hightman / xunsearch

免费开源的中文搜索引擎,采用 C/C++ 编写 (基于 xapian 和 scws),提供 PHP 的开发接口和丰富文档
http://www.xunsearch.com
Other
1.65k stars 391 forks source link

openssl 1.1x安装失败的解决方法 #81

Open tianpu opened 5 years ago

tianpu commented 5 years ago

centos和freebsd都遇到了这个问题,libevent编译不通过,可以通过在setup.sh给libevent安装增加--disable-openssl来解决

Masterton commented 5 years ago

这个代码加到代码中的哪里 --disable-openssl

# check & install libevent
old_version=
echo -n "Checking libevent ... "
if test -f $prefix/include/event2/event-config.h ; then
  old_version=`cat $prefix/include/event2/event-config.h | grep EVENT_VERSION | cut -d\" -f2`
  echo $old_version
else
  echo "no"
fi
do_install=$set_force
new_file=`ls ./packages/libevent-*`
new_version=`echo $new_file | sed 's#^.*libevent-\(.*\)\.tar\.bz2#\1#'`
if test -z "$old_version" ; then
  if test -z "$new_version" ; then
    echo "ERROR: Missing libevent package (缺少 libevent 安装包)"
    exit 2
  fi
  echo "Installing libevent ($new_version) ... "
  do_install=yes
elif ! test -z "$new_version" && test "$new_version" != "$old_version" ; then
  echo "Upgrading libevent ($old_version -> $new_version)"
  do_install=yes
fi

if test "$do_install" = "yes" ; then
  echo "Extracting libevent package ..."
  tar -xjf $new_file
  cd libevent-$new_version
  echo "Configuring libevent ..."
  ./configure --prefix=$prefix >> ../setup.log 2>&1
  if test $? -ne 0 ; then
    setup_abort "configure libevent"
  fi
  echo "Compiling & installing libevent ..."
  make clean >> ../setup.log 2>&1
  make $mk_add_option install >> ../setup.log 2>&1
  if test $? -ne 0 ; then
    setup_abort "compile libevent"
  fi
  cd ..
fi
tianpu commented 5 years ago

兄台也遇到这个问题了啊。

L334

-   ./configure --prefix=$prefix >> ../setup.log 2>&1
+  ./configure --prefix=$prefix --disable-openssl >> ../setup.log 2>&1
Masterton commented 5 years ago

谢谢兄台的帮助 安装成功

KEN-studio commented 5 years ago

libevent 感谢分享!

我试了下更换libevent版本,不可行。只有你这个办法可以。 openssl 1.1 对应需要 libevent 2.1.x以上,目前安装包自带的是 libevent 2.0.x。 将 packages 中的libevent 更换到 2.1以上不能成功,返回错误 error: libevent 2.0.0 or greater required!

TangMonk commented 5 years ago

这个方法可以

hightman commented 5 years ago

建议用docker

发自我的 iPhone6艹

在 2019年9月3日,15:26,David Wu notifications@github.com 写道:

这个方法可以

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

TangMonk commented 5 years ago

@hightman 用docker不太方便,比如说修改自定义词库,执行Indexer.php之类的

povsister commented 5 years ago

原因在于libevent 2.0.x需要openssl < 1.1.0

常用的几个Linux发行版已经把系统的openssl升级到了1.1.0+ 即对应需要libevent 2.1.x+ 而libevent 2.1.x改了头文件.. 如果不更换系统openssl版本. 那就可以去手动下载一个 libevent-2.1.11-stable.tar.gz 自己换成bz压缩格式(libevent-2.1.11-stable.tar.bz2) 放进 packages,记得删掉原来的libevent

然后修改 xunsearch-1.4.13/configure L5390

- #if _EVENT_NUMERIC_VERSION >= 0x02000000
+ #if EVENT__NUMERIC_VERSION >= 0x02000000

即可通过libevent的编译及xunsearch的configure

tianpu commented 4 years ago

原因在于libevent 2.0.x需要openssl < 1.1.0

常用的几个Linux发行版已经把系统的openssl升级到了1.1.0+ 即对应需要libevent 2.1.x+ 而libevent 2.1.x改了头文件.. 如果不更换系统openssl版本. 那就可以去手动下载一个 libevent-2.1.11-stable.tar.gz 自己换成bz压缩格式(libevent-2.1.11-stable.tar.bz2) 放进 packages,记得删掉原来的libevent

然后修改 xunsearch-1.4.13/configure L5390

- #if _EVENT_NUMERIC_VERSION >= 0x02000000
+ #if EVENT__NUMERIC_VERSION >= 0x02000000

即可通过libevent的编译及xunsearch的configure

感谢兄台。

freebsd升级到12.1后,默认openssl版本是1.1.1.d只有这个方法可行了。 强行安装上了,没看源码,希望没后遗症。

tianpu commented 4 years ago

打包了个支持freebsd 12.1 + openssl 1.1.1d的,在https://github.com/tianpu/xunsearch

povsister commented 4 years ago

打包了个支持freebsd 12.1 + openssl 1.1.1d的,在https://github.com/tianpu/xunsearch

修改configure文件的L5390是为了正确的识别新版本的openssl并将openssl编译进去 你同时又使用了楼上的--disable-openssl选择不编译openssl

迷惑操作.jpg

tianpu commented 4 years ago

打包了个支持freebsd 12.1 + openssl 1.1.1d的,在https://github.com/tianpu/xunsearch

修改configure文件的L5390是为了正确的识别新版本的openssl并将openssl编译进去 你同时又使用了楼上的--disable-openssl选择不编译openssl

迷惑操作.jpg

是这样子的,如果不修改L5390,压根不能安装。 而可以安装后,本地socket连接似乎没有必要openssl,总觉得依赖越少越安全。