В conda tmux и emacs выдают "ошибка при загрузке общих библиотек: libtinfo.so.6"
Я установил и обновил tmux
а также emacs
с помощью conda
в моей среде по умолчанию, и эти версии в conda list
:
# packages in environment at /home/maxghenis/miniconda3:
#
# Name Version Build Channel
tmux 2.7 hc78d2af_1 conda-forge
emacs 26.1 h3a2ea38_1 conda-forge
Тем не менее, при попытке начать либо tmux
или же emacs
Я получаю эту ошибку:
error while loading shared libraries: libtinfo.so.6: cannot open shared object file: No such file or directory
За ошибку при загрузке общих библиотек: libgsl.so.0: невозможно открыть файл общего объекта: нет такого файла или каталога, у меня есть 5 libtinfo
файлы:
(xenial)maxghenis@localhost:~$ sudo find / -name "libtinfo.so"
/home/maxghenis/miniconda3/pkgs/ncurses-5.9-10/lib/libtinfo.so
/home/maxghenis/miniconda3/pkgs/ncurses-6.1-hf484d3e_0/lib/libtinfo.so
/home/maxghenis/miniconda3/envs/tidycensus/lib/libtinfo.so
/home/maxghenis/miniconda3/lib/libtinfo.so
(xenial)maxghenis@localhost:/lib$ sudo find / -name "libtinfo.so.6"
/lib64/libtinfo.so.6
1 ответ
Та же проблема. Следующее сработало:
$ pwd
<anaconda_installation_dir>
$ ./bin/tmux
(error)
$ find . -name "libtinfo*"
...
./lib/libtinfo.so # this is the needed shared lib shipped deployed by conda, just need it been found
...
$ ln -s `readlink -f ./lib/libtinfo.so` `readlink -f ./lib/libtinfo.so | sed 's@libtinfo.so$@libtinfo.so.6@'`
$ find . -name "libtinfo*"
...
./lib/libtinfo.so # original lib
./lib/libtinfo.so.6 # the new one which is a symlink
...
$ ./bin/tmux
(ok)
Что касается того, почему это может быть желательным - мой случай работает в своего рода административно "враждебной" среде, когда у меня нет доступа к быстрому развертыванию пакетов по требованию (а также к root / sudi, конечно), но по-прежнему необходимо screen
решение
Вам может понадобиться пакет libncurses6. Когда вы ищете библиотеку, вы должны искать файлы
find / -name "libtinfo.so*" -ls
Файл libtinfo.so
используется только при создании исполняемого файла и обычно является символической ссылкой на реальную библиотеку. Не нужно запускать программу. Файл "libtinfo.so.6" также часто является символической ссылкой на реальную библиотеку. В моей системе это
/lib64/libtinfo.so.6 -> libtinfo.so.6.1
Так как tmux и emacs являются системными утилитами, и вряд ли вы захотите использовать их разные версии, почему бы вам не установить их в базовой системе без conda?