首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CentOS 7上安全地升级glibc

在CentOS 7上安全地升级glibc
EN

Server Fault用户
提问于 2018-01-29 15:16:39
回答 3查看 89.9K关注 0票数 15

我在我的CentOS机器上尝试了一个python应用程序,它给出了以下错误:

代码语言:javascript
复制
ImportError: /usr/lib64/libc.so.6: version `GLIBC_2.18' not found (required by /tmp/_MEI2BYIr4/libstdc++.so.6)

我一直想升级GLIBC,但是在阅读了一些论坛之后,我似乎可以打破这个系统。你知道还有别的办法吗?

谢谢

EN

回答 3

Server Fault用户

发布于 2018-01-29 22:17:23

检查它实际上需要

首先,检查python应用程序,因为它可能过时了,并且可能误读了glibc版本。CentOS显示了已安装的基本版本,并对其进行了修补以跟上更改,这可能只是修复代码中正在寻找的快速修复版本的情况,但如果应用程序正在积极开发,则需要让开发人员知道或尽可能为您自己分叉。

最新的glibc on CentOS 7应该是2.17-196.el7_4.2

(如果需要的话),容器

如果绝对有必要运行这个应用程序,官方的RHEL方法将是容器化,但是您仍然需要提供一个正常工作的glibc,这在CentOS 7中是不可能的。

作为最后手段,在非标准位置

中安装glibc

如果这不可行,并且作为绝对的最后手段,可以安装比2.18更新的glibc版本,因为这是9年前的版本了,glibc已经更新了几个漏洞,我不确定它是否会与CentOS 7中的make版本一起构建,但是任何较新的版本都应该工作如下:

  • 这可能会影响您的计算机的功能,所以请确保您知道自己在做什么。

您可以在服务器的其他地方构建所需的glibc版本,并将其添加到应用程序的LD_LIBRARY_PATH中。注意,这必须只对应用程序执行。

代码语言:javascript
复制
wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
tar zxvf glibc-2.18.tar.gz
cd glibc-2.18
mkdir build
cd build
../configure --prefix=/opt/glibc-2.18
make -j4
sudo make install

然后,要运行二进制文件,需要使用patchelf更新其解释器。

代码语言:javascript
复制
patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 program_you_are_running

并且您需要使它能够找到新的glibc库,或者通过

代码语言:javascript
复制
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/glibc-2.18/lib

也可以使用patchelf更新二进制文件的rpath (可以将其与前面的pathelf命令结合使用)

代码语言:javascript
复制
patchelf --set-rpath /opt/glibc-2.18/lib:/usr/lib64 program_you_are_running

如果您更改了LD_LIBRARY_PATH,请不要为整个系统导出它,因为所有未经patchelf修改的二进制文件都会发生分段错误。

/opt是安装第三方应用程序和库的标准位置,但是您可以使用远离系统路径的任何路径。

票数 19
EN

Server Fault用户

发布于 2018-02-01 09:44:45

最后,我没有升级GLIBC。我通过R下载的gdc-client工具似乎是为Ubuntu而不是CentOS下载的,尽管我是在CentOS 7上下载的,然后我下载了用于CentOS的gdc客户机,它运行良好。

票数 3
EN

Server Fault用户

发布于 2019-08-22 11:48:47

在CentOS 7中,我将/usr/lib64文件夹包括在rpath中,如下所示

代码语言:javascript
复制
patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 --set-rpath /opt/glibc-2.18/lib:/usr/lib64 pydio-agent

这对我来说很管用

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

https://serverfault.com/questions/894625

复制
相关文章

相似问题

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