在conda中时,tmux和emacs抛出“加载共享库时出错:libtinfo.so.6”

时间:2018-07-18 18:25:34

标签: conda tmux libtool

我已在默认环境中通过tmux安装和更新了emacsconda,并且在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

但是,当尝试启动tmuxemacs时,出现此错误:

error while loading shared libraries: libtinfo.so.6: cannot open shared object file: No such file or directory

每个error while loading shared libraries: libgsl.so.0: cannot open shared object file: No such file or directory我有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

2 个答案:

答案 0 :(得分:1)

您可能需要一个软件包libncurses6。搜索该库时,应查找文件

find / -name "libtinfo.so*" -ls

文件libtinfo.so仅在创建可执行文件时使用,通常是指向实际库的符号链接。不需要运行程序。文件“ libtinfo.so.6”通常也是指向实际库的符号链接。在我的系统上,是

/lib64/libtinfo.so.6 -> libtinfo.so.6.1

由于tmux和emacs是系统实用程序,不可能使用它们的不同版本,为什么不将它们安装在没有conda的基本系统中?

答案 1 :(得分:0)

相同的问题。解决了以下问题:

$ 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的解决方案。