You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS6无权限下解决__vdso_clock_gettime符号未定义的GLIBC报错

解决CentOS 6中conda/python触发的__vdso_clock_gettime relocation错误

首先咱们先把问题根源捋清楚:你之前把新版glibc装到个人目录后,大概率是修改了LD_LIBRARY_PATH环境变量,让系统优先加载你个人目录里的glibc。但系统自带的librt.so.1(版本2.12)依赖旧版glibc的私有符号__vdso_clock_gettime,而新版glibc没有这个私有符号,直接导致了链接错误。

第一步:确认程序实际加载的库路径

先搞明白conda/python到底在调用哪个libc.so.6和librt.so.1,执行这条命令就能一目了然:

ldd /public/home/liuxs/anaconda3/bin/python | grep -E "(libc.so.6|librt.so.1)"

如果输出里出现你个人目录的glibc路径,那就能实锤是环境变量导致的库优先级混乱问题。

解决方案(按优先级尝试)

1. 重置环境变量,恢复系统库优先级

首先检查你的~/.bashrc、~/.bash_profile这类登录配置文件,有没有添加过类似下面的行:

export LD_LIBRARY_PATH=/你的个人glibc目录/lib:$LD_LIBRARY_PATH

把这些行注释掉或者直接删除,然后重新登录终端,或者临时执行以下命令快速恢复:

# 清空LD_LIBRARY_PATH,让系统使用默认库路径
unset LD_LIBRARY_PATH
# 或者手动指定系统默认库路径,确保优先级最高
export LD_LIBRARY_PATH=/lib64:/lib:$LD_LIBRARY_PATH

之后再测试conda和python命令,看是否恢复正常。

2. 强制让conda使用自带的兼容库

如果重置环境变量没用,说明可能有残留的链接缓存,可以强制让conda加载自己sysroot目录下的CentOS 6兼容库:

  • 先临时测试是否有效:
LD_PRELOAD=/public/home/liuxs/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libc.so.6:/public/home/liuxs/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/librt.so.1 /public/home/liuxs/anaconda3/bin/python

如果这条命令能正常进入python交互环境,就把这个设置永久化:
编辑~/.bashrc,添加以下别名配置:

alias python='LD_PRELOAD=/public/home/liuxs/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libc.so.6:/public/home/liuxs/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/librt.so.1 /public/home/liuxs/anaconda3/bin/python'
alias conda='LD_PRELOAD=/public/home/liuxs/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libc.so.6:/public/home/liuxs/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/librt.so.1 /public/home/liuxs/anaconda3/bin/conda'

执行source ~/.bashrc让设置生效,之后直接用python和conda命令即可。

3. 重装Anaconda到干净环境

如果上面的方法都解决不了,建议备份当前的anaconda目录后删除,重新下载适配CentOS 6的Anaconda版本(注意选择标注cos6的安装包),安装时不要修改任何系统库相关的配置,安装完成后直接使用,彻底避免和之前手动安装的glibc产生冲突。

后续避坑提示:个人目录安装glibc的正确姿势

以后如果确实需要新版本glibc,千万不要全局修改LD_LIBRARY_PATH,可以用以下两种方式隔离,避免影响系统其他程序:

  • 仅在运行特定程序时临时加载个人glibc:
LD_LIBRARY_PATH=/你的个人glibc/lib:/你的个人glibc/lib64 ./your_target_program
  • 用patchelf工具修改程序的rpath,让它优先加载个人目录的库(完全不影响其他程序):
patchelf --set-rpath /你的个人glibc/lib:/你的个人glibc/lib64 ./your_target_program

内容的提问来源于stack exchange,提问作者Shixiang Wang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:00:02