Raspberry Pi 2 上的 ejabberd 18.03,ejabberdctl 因缺少 libtinfo.so.6 而失败

Raspberry Pi 2 上的 ejabberd 18.03,ejabberdctl 因缺少 libtinfo.so.6 而失败

我正在尝试使用来自 ProcessOne 的 Linux ARMv7 二进制安装程序在 Raspberry Pi 2 上运行 ejabberd: https://www.process-one.net/en/ejabberd/downloads/

安装后,尝试添加用户或启动/停止 ejabberd,ejabberdctl 失败并出现以下错误:

/opt/ejabberd-18.03/bin/beam.smp: error while loading shared libraries: libtinfo.so.6: cannot open shared object file: No such file or directory

当我这样做时,sudo find / -name 'libtinfo.so*' | more我得到以下输出:

/usr/lib/arm-linux-gnueabihf/libtinfo.so
/lib/arm-linux-gnueabihf/libtinfo.so.5.9
/lib/arm-linux-gnueabihf/libtinfo.so.5

也就是说,libtinfo.so.6 似乎不在系统中,但却是 ejabberd(或至少是 ejabberdctl)所需要的。

我已经使用此处的最新 Raspbian Stretch Lite 图像尝试了这两个操作:https://www.raspberrypi.org/downloads/raspbian/

以及适用于 Pi 的 Ubuntu 16.04 LTS‘经典’图像: https://wiki.ubuntu.com/ARM/RaspberryPi

(我也尝试过apt-get dist-upgrade使用 Ubuntu 映像升级到 16.04.4)。

最后,我也安装了ejabberd v18.01,但发生了同样的情况。

我不想使用 Raspbian 或 Ubuntu 附带的 ejabberd 版本,因为它们太旧了,不支持我想要使用的 XMPP 功能。我在我的 Intel 机器上尝试了附带的 Ubuntu 版本,经过多次尝试后,我转到 ProcessOne 的 64 位 x86 二进制安装程序的二进制安装程序,以获得 v18.01(现已升级到 v18.03),它运行完美。

奇怪的是,当我在我的 Intel 系统上执行相同操作时sudo find / -name 'libtinfo.so*' | more(ejabberd 运行没有任何问题),输出是:

/opt/ejabberd-18.03/lib/linux-x86_64/libtinfo.so.5
/lib/x86_64-linux-gnu/libtinfo.so.5.9
/lib/x86_64-linux-gnu/libtinfo.so.5

...也就是说,在运行的 x86_64 系统上,libtinfo.so.6 似乎不需要。

有人能帮我吗?我搜索了在 RPi 上更新 libtinfo 的方法,但没有找到如何做到这一点。或者我可以做些什么来说服 ejabberdctl 使用 libtinfo.so.5?

如果有人有任何建议,我提前谢谢您。

答案1

如果有人有同样的问题,有两种解决方案:

  1. 等待 ejabberd v18.04 -https://github.com/processone/ejabberd/issues/2381
  2. 在 Pi 上使用 Fedora 27,而不是 Raspbian 或 Ubuntu 16.04。Fedora 27 包含开箱即用的 libtinfo.so.6

相关内容