Miniconda装CUDA/CuDNN后libtinfo.so.6警告及重启消失问题
解决Miniconda导致zsh启动时libtinfo.so.6警告的方法及原因解析
一、消除警告的可行方案
1. 临时验证问题根源
启动zsh后执行以下命令,若警告消失,即可确认是LD_LIBRARY_PATH变量导致:
unset LD_LIBRARY_PATH
2. 定位隐秘的环境变量配置位置
排查常规rc文件无果的话,重点检查以下几个容易遗漏的地方:
- 系统级脚本目录:查看
/etc/profile.d/下的所有.sh或.zsh脚本,conda初始化可能会在这里添加环境变量配置。 - zsh全局配置:检查
/etc/zshrc、/etc/zprofile这两个全局配置文件,部分系统会在这里写入全局环境变量。 - conda自身配置:执行
conda config --show init_source查看conda初始化脚本的来源,同时检查~/.conda/目录下的配置文件。 - 桌面启动脚本:查看
~/.config/autostart/中的启动项,以及~/.xsessionrc、~/.xinitrc,这些脚本会在桌面启动时设置环境变量,后续打开的shell会继承这些变量。
3. 永久修复
- 若找到设置
LD_LIBRARY_PATH的位置,直接注释或删除对应的行即可。 - 若实在找不到配置位置,可在
~/.zshrc末尾添加以下命令,每次启动shell时移除miniconda的lib路径:
注意:若后续使用conda或CUDA出现问题,可恢复变量,说明该路径是必要的,此时可以尝试替换系统的# 移除miniconda的lib路径,保留其他LD_LIBRARY_PATH内容 export LD_LIBRARY_PATH=$(echo $LD_LIBRARY_PATH | sed 's/\/some\/path\/to\/miniconda3\/lib://g') # 若不需要保留其他路径,直接取消变量 # unset LD_LIBRARY_PATHlibtinfo.so.6链接(比如将系统的/usr/lib/libtinfo.so.6软链到miniconda的对应文件)。
二、重启桌面后警告消失的原因
重启桌面后警告消失,核心是桌面会话的环境变量被重置:
- 桌面环境启动时会重新加载系统和用户的环境变量配置,之前的
LD_LIBRARY_PATH可能是某次conda操作临时写入了会话缓存(比如通过GUI执行conda命令时,环境变量被写入当前桌面会话的缓存),重启桌面后,会话缓存失效,环境变量重新从配置文件读取,错误的路径自然被清除。 - 部分桌面环境(如GNOME)会使用dconf或systemd用户会话来缓存环境变量,重启桌面会让这些缓存彻底重置,避免继承之前的错误变量。
内容的提问来源于stack exchange,提问作者Dogemore
相关产品推荐
相关产品推荐

