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

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

我正在嘗試使用 ProcessOne 中的 Linux ARMv7 二進位安裝程式讓 ejabberd 在 Raspberry Pi 2 上運行: 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

相關內容