В 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?

Другие вопросы по тегам