Ошибка Erlang: при загрузке общих библиотек: libncursesw.so.6
После установки Elrang/OTP на сервер с Ubuntu 15.10,
sudo apt-get install build-essential
sudo apt-get --fix-missing -y install build-essential m4 libncurses5-dev libssh-dev unixodbc-dev libgmp3-dev libwxgtk2.8-dev libglu1-mesa-dev fop xsltproc default-jdk
sudo apt-get --fix-missing -y install build-essential m4 libncurses5-dev libssh-dev unixodbc-dev libgmp3-dev libwxgtk2.8-dev libglu1-mesa-dev fop xsltproc default-jdk
wget https://packages.erlang-solutions.com/erlang/esl-erlang/FLAVOUR_1_general/esl-erlang_18.3-1~ubuntu~wily_amd64.deb
sudo dpkg -i esl-erlang_18.3-1~ubuntu~wily_amd64.deb
sudo apt-get update
sudo apt-get install esl-erlang
sudo apt-get install elixir
У меня ошибка при запуске одного из моих приложений:
: error while loading shared libraries: libncursesw.so.6: cannot open shared object file: No such file or directory
ОБНОВИТЬ:
$ locate libncursesw5
/usr/share/doc/libncursesw5
/var/lib/dpkg/info/libncursesw5:amd64.list
/var/lib/dpkg/info/libncursesw5:amd64.md5sums
/var/lib/dpkg/info/libncursesw5:amd64.postinst
/var/lib/dpkg/info/libncursesw5:amd64.postrm
/var/lib/dpkg/info/libncursesw5:amd64.shlibs
/var/lib/dpkg/info/libncursesw5:amd64.symbols
$ locate libncursesw
/lib/x86_64-linux-gnu/libncursesw.so.5
/lib/x86_64-linux-gnu/libncursesw.so.5.9
/usr/share/doc/libncursesw5
/var/lib/dpkg/info/libncursesw5:amd64.list
/var/lib/dpkg/info/libncursesw5:amd64.md5sums
/var/lib/dpkg/info/libncursesw5:amd64.postinst
/var/lib/dpkg/info/libncursesw5:amd64.postrm
/var/lib/dpkg/info/libncursesw5:amd64.shlibs
/var/lib/dpkg/info/libncursesw5:amd64.symbols
3 ответа
Я думаю, что вам нужно также установить libncursesw5
пакет:
sudo apt install libncursesw5 libncursesw5-dev
Затем попробуйте выполнить команду, которая выдает "ошибку при загрузке общих библиотек".
Обновление: если у вас есть эти пакеты и вы все еще получаете ошибку, возможно, это связано с тем, что ваше программное обеспечение ожидает версию 6 libncursesw
, но только версия 5 доступна в Ubuntu. (см. https://bbs.archlinux.org/viewtopic.php?id=202562, что является той же проблемой, но в Arch Linux.)
В качестве хакерского возможного обходного пути вы могли бы создать символическую ссылку, чтобы ваше программное обеспечение считало, что установлена версия 6, хотя на самом деле используется версия 5:
sudo ln -s /lib/x86_64-linux-gnu/libncursesw.so.5 /lib/x86_64-linux-gnu/libncursesw.so.6
Это не самое элегантное решение, но оно может сработать. Если вы решите сделать это, пожалуйста, не забудьте документировать это где-то на случай, если у вас возникнут какие-либо проблемы при обновлении Ubuntu позже.
Пожалуйста, дайте мне знать, если это было полезно или если у вас есть дополнительные вопросы.
Для моей конкретной среды исправлено с помощью:
# Note: add sudo if needed:
ln -fs /lib/x86_64-linux-gnu/libncursesw.so.6 /opt/conda/lib/libncursesw.so.6
В общем за пропажу
*.so.6
общие зависимости версия пакета должна содержать 6, а не 5 в своем имени, поэтому в этом случае (ошибка времени выполнения:
libncursesw.so.6: cannot open shared object file
) Мне пришлось установить (в моем контейнере без дистрибутива)
libncursesw6
упаковка:
sudo apt update && sudo apt install -y libncursesw6