首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >libtinfo.so.6:使用conda环境没有可用的版本信息

libtinfo.so.6:使用conda环境没有可用的版本信息
EN

Stack Overflow用户
提问于 2022-05-03 17:11:21
回答 2查看 6.3K关注 0票数 4

我有一个conda环境设置,必须像这样设置我的LD_LIBRARY_PATH

代码语言:javascript
运行
复制
export LD_LIBRARY_PATH=$HOME/.miniconda3/envs/ll4ma/lib:$LD_LIBRARY_PATH

然而,一旦我这样做了,我就开始让我的终端充斥着这样的信息:

代码语言:javascript
运行
复制
/bin/bash: /home/ll4ma/.miniconda3/envs/ll4ma/lib/libtinfo.so.6: no version information available (required by /bin/bash)

知道怎么解决这个问题吗?我正在用catkin为ROS构建一些代码,这条消息在这个过程中可能会打印20次,这使得终端输出很难查看。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-01 15:54:25

事实证明,libtinfo的版本(作为ncurses的一部分安装)没有提供这个相关的答案中建议的版本信息。我能够通过强制从ncurses通道安装conda-forge来解决这个问题,而不是默认情况。在我的conda env的YAML配置中,我只做了以下操作:

代码语言:javascript
运行
复制
dependencies:
  - conda-forge::ncurses

如果从命令行安装,则可以

代码语言:javascript
运行
复制
conda install -c conda-forge ncurses

如果您没有指定通道,那么您需要按照描述的这里设置通道优先级,这样它就会赋予conda-forge优先权。

使用来自conda-forgeconda-forge版本而不是默认的版本消除了发送给我的终端的消息,因为conda-forge one附带了所描述的这里的版本信息。

票数 11
EN

Stack Overflow用户

发布于 2022-05-30 03:39:26

很可能您的conda环境有一个较旧的libtinfo.so.6库,并且当您将conda路径导出到LD_LIBRARY_PATH时,这个会话中需要libtinfo.so.6的每个程序都将从您的conda环境中加载库。现在,当bash想要加载libtinfo.so.6时,它需要一个包含特定符号的更新版本,但是conda的库没有提供这个符号,因此ld抱怨没有可用的版本信息。

如果您正在运行一个可执行文件,或者您正在编译一个需要这个库的程序,您可以简单地在运行的程序之前追加环境变量。例如,LD_LIBRARY_PATH=$HOME/.miniconda3/envs/ll4ma/lib:$LD_LIBRARY_PATH /bin/bash将使用前面指定的LD_LIBRARY_PATH运行bash。这将将更改后的环境变量的范围限制在这一行,这样您的全局环境就不会受到影响。解决此问题的另一种方法是简单地删除conda环境中的libtinfo.so.6 (确保在删除它之前备份),并测试您的程序是否还能运行。在许多情况下,库是设计成与ABI兼容的,所以使用更新版本的库不会破坏任何东西。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72103046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档