Я пытаюсь заставить ejabberd работать на Raspberry Pi 2, используя двоичный установщик Linux ARMv7 от ProcessOne здесь: 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/
а также образ Ubuntu 16.04 LTS «classic» для Pi здесь: https://wiki.ubuntu.com/ARM/RaspberryPi
(Я также попытался после этого apt-get dist-upgrade
с образом Ubuntu перейти на 16.04.4).
Наконец, я также установил ejabberd v18.01, но происходит то же самое.
Я не хочу использовать версии ejabberd, упакованные с Raspbian или Ubuntu, так как они старые и не поддерживают функции XMPP, которые я хочу использовать. Я попробовал упакованную версию Ubuntu на своей машине Intel и после многих трудностей перешел на бинарный установщик для 64-битного x86 бинарного установщика от ProcessOne, чтобы получить v18.01 (теперь обновленную до v18.03), которая работает отлично.
Как ни странно, когда я делаю то же самое sudo find / -name 'libtinfo.so*' | more
на своей системе Intel (где 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, похоже, не нужен.
Может ли кто-нибудь помочь мне с этим? Я искал способ обновления libtinfo на RPi, но не нашел, как это сделать. Или есть что-то, что я могу сделать, чтобы убедить ejabberdctl работать с libtinfo.so.5?
Заранее спасибо, если у кого-то есть какие-либо советы.
решение1
Если у кого-то возникнет такой же вопрос, есть два решения:
- Подождите ejabberd v18.04 -https://github.com/processone/ejabberd/issues/2381
- Используйте Fedora 27 на Pi вместо Raspbian или Ubuntu 16.04. Fedora 27 содержит libtinfo.so.6 из коробки