开发者社区 问答 正文

安装 mysql,提示缺少依赖 glibc_2.17,已经自行下载编译,替换 /lib64/不成功

安装 mysql,提示缺少依赖 glibc_2.17,已经自行下载编译,替换 /lib64/libc.so.6,系统所有的命令提示 
error while loading shared libraries: __vdso_time: invalid mode for dlopen() Invalid argument。

展开
收起
1036898182095081 2019-01-16 16:15:04 890 分享 版权
阿里云 AI 助理回答

遇到这个问题,说明您在尝试替换glibc(GNU C Library)时出现了错误。glibc是Linux系统中的一个核心库,负责提供基本的系统调用和标准C库函数实现。直接替换/lib64/libc.so.6是非常危险的操作,因为它会影响到系统的几乎所有部分,包括动态链接器本身。

解决您当前问题的一般步骤如下:

  1. 回退更改:首先,您需要尽可能安全地恢复原来的glibc。如果您之前有备份原始的libc.so.6文件,立即使用该备份替换回去。如果没有备份,可能需要从相同版本的系统中复制该文件,或者考虑重新安装系统(这是最后的手段,因为较为极端)。

  2. 正确升级glibc:如果确实需要升级glibc以满足MySQL或其他软件的依赖,应该通过系统的包管理器进行。对于基于RPM的系统(如Red Hat, CentOS, Fedora等),可以使用yumdnf;对于基于DEB的系统(如Debian, Ubuntu等),则使用apt。例如,在CentOS上,如果是因为EPEL的MySQL需要更高版本的glibc,你可能需要先更新整个系统到一个支持glibc 2.17的版本,或者寻找一个与当前系统glibc兼容的MySQL版本。

  3. 使用软件仓库或源码编译:如果您的系统版本较老,官方仓库不提供所需版本的glibc,您可以考虑手动编译glibc并安装到一个非标准路径,然后通过修改LD_LIBRARY_PATH环境变量或为特定应用配置单独的库路径来使用新版本的glibc,而不是直接替换系统默认的glibc。

  4. 考虑Docker容器:如果上述方法都不可行或过于复杂,且您主要是为了运行某个特定应用(如MySQL),可以考虑使用Docker容器。在容器中,您可以构建一个满足所有依赖的环境,而不会影响到宿主机系统。

请记住,直接操作系统核心库是非常危险的,应尽量避免此类操作,并优先考虑通过系统提供的正规途径解决问题。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
还有其他疑问?
咨询AI助理