【问题标题】:When in conda, tmux and emacs throw "error while loading shared libraries: libtinfo.so.6"在 conda 中,tmux 和 emacs 会抛出“加载共享库时出错:libtinfo.so.6”
【发布时间】:2018-12-26 18:26:08
【问题描述】:

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

每 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

【问题讨论】:

  • 好吧,我不知道为什么链接 libgsl.so 会有所帮助,因为缺少 libtinfo.so...此外,查找命令错误消息是因为谓词拼写为小写 @987654335 @ 在name 中,您可能应该寻找libtinfo 而不是libgsl...
  • 但是你不需要libgsl.so,你需要libtinfo.so。为什么要搜索 libgsl?
  • 我的错误 - 这个问题出现在我的搜索中,所以我认为这些文件是相关的,但我发现它们不是。用sudo find / -name "libtinfo.so"的4个结果更新了问题。
  • 您可以尝试将 ncurses 安装到您的基础环境中吗?

标签: conda tmux libtool


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 这是我的result 该命令。在启动时不使用 conda (apt-get) 安装会产生此错误:-bash: /home/maxghenis/miniconda3/bin/emacs: No such file or directory 这是 emacs 的 find 的 result。
  • 原来它们被安装到/usr/bin,而我的$PATH 中却没有。 Here 是我解决它的命令,对于 emacs 和 tmux。所以这可以作为替代方案,但我仍然很好奇如何使用conda 版本。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    相关资源
    最近更新 更多