尝试在容器内运行conda,发现报错如下:
conda "ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found"
解决方式
安装libgcc
conda install libgcc
如果仍然报错,则
export LD_LIBRARY_PATH=<conda-env-path>/lib:$LD_LIBRARY_PATH
conda-env-path
替换为conda的目录,核心是通过修改LD_LIBRARY_PATH
,让conda的python正确加载conda安装的libstdc++,而非系统的版本
To-Ask
为什么需要配环境变量?
按理来说conda在安装时应当已经修改了bashrc、zshrc等文件,让shell环境里的LD_LIBRARY_PATH带上了conda的lib目录(需要检查下未挂载home目录的容器以确认)。有可能是因为在启动容器时挂载了整个home目录,导致容器内的bash用了host的配置所致。
仔细想想,虽然挂载整个home目录用起来方便,但像shell配置、各类软件的cache本身是应该与host独立的,最好还是挂载home下的特定目录