Centos7.9安装glibc2.18后回滚到glibc2.17

news2024/12/23 17:57:38

对glibc的操作非常危险,如果您对Linux操作系统的操作仅限于查看别人的资料来解决问题的话,我还是比较真诚的劝退你了。只所以还是写下这篇博文,一是为了记录自己排错的过程,二是更正目前网络中一些不太正确的博文,防止将新手带入坑中。

centos7.9 在运行一些软件时,会出现/lib64/libc.so.6: version GLIBC_2.18 not found的提示,原因是centos7.9默认使用的是glibc 2.17。为了运行这类程序,我们理所当然的想到升级glibc。以下就是升级glibc 到 2.18的命令。大家感兴趣的话可以在测试环境中实验,如果没有充分的把握千万不要在生产环境中使用。

1.安装glibc 2.18

使用下面的命令安装glibc 2.18

wget https://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=/usr
make -j$(nproc)
make install

在执行上述命令时很顺畅,并没有报错提示,安装完成后,使用命令ldd --version,查看当前的glibc,发现已经是2.18了。并且再次前面报错的程序时能够正常运行了。

正当你感到如释重担的时候,可是当系统重启后,你会惊奇的发现已经无法进入桌面系统了。查了许多资料,问题指向是glibc 2.18版本的问题,只要把glibc 2.18 回滚到glibc 2.17,就会解决以上问题了。
在这里插入图片描述
重启系统后,我的虚拟机已经无法显示桌面了,好在ssh还可以登录。
在这里插入图片描述
进入/lib64目录,使用下面的命令查看当前glibc 2.18的相关信息。

cd /lib64
ll -h | grep "2\.18"

在这里插入图片描述

从上图我们可以发现,有很多软链接都指向了2.18的版本。我们可以到正常运行的系统中查看一下看看有什么区别。

在这里插入图片描述
通过对比发现,在构建glibc 2.18 时使用--prefix=/usr安装的glibc 2.18将软连接都改成2.18了。接下来我们只要把2.18改回2.17就应该能将glibc版本回滚了。

📓 请认真核查对应的软链接。

2.重新安装glibc

首先使用下面的命令重新安装glibc.

yum update
yum reinstall -y glibc

在这里插入图片描述

3.重新链接到glibc 2.17

进入/lib64目录,先将所有的glibc 2.18相关的连接库删除。

rm -rf ld-2.18.so libanl-2.18.so libBrokenLocale-2.18.so libc-2.18.so libcidn-2.18.so libcrypt-2.18.so libdl-2.18.so libm-2.18.so libnsl-2.18.so libnss_compat-2.18.so libnss_db-2.18.so libnss_dns-2.18.so libnss_files-2.18.so libnss_hesiod-2.18.so libnss_nis-2.18.so libnss_nisplus-2.18.so libpthread-2.18.so libresolv-2.18.so librt-2.18.so libutil-2.18.so

然后再删除libc.so.6,删除libc.so.6以后,很多常用的命令就无法使用了,我们使用sln命令进行重新链接。
在这里插入图片描述
重建glibc 2.17链接。

sln ld-2.17.so ld-linux-x86-64.so.2  
sln ld-2.17.so libanl.so.1
sln libBrokenLocale-2.17.so libBrokenLocale.so.1
sln libcidn-2.17.so libcidn.so.1
sln libcrypt-2.17.so libcrypt.so.1
sln libdl-2.17.so libdl.so.2
sln libm-2.17.so libm.so.6
sln libnsl-2.17.so libnsl.so.1
sln libnss_compat-2.17.so libnss_compat.so.2
sln libnss_db-2.17.so libnss_db.so.2
sln libnss_dns-2.17.so libnss_dns.so.2
sln  libnss_files-2.17.so libnss_files.so.2
sln libnss_hesiod-2.17.so libnss_hesiod.so.2
sln libnss_nisplus-2.17.so libnss_nisplus.so.2
sln libnss_nis-2.17.so libnss_nis.so.2
sln libpthread-2.17.so libpthread.so.0
sln libresolv-2.17.so libresolv.so.2
sln librt-2.17.so librt.so.1
sln libutil-2.17.so libutil.so.1

在这里插入图片描述
接下来重建libc.so.6链接到libc-2.17.so

sln libc-2.17.so libc.so.6

在这里插入图片描述

完成上述操作后,重启系统,桌面能够正常登录了。
在这里插入图片描述
然而事情远没有结束。

正常登录系统后,你会发现系统还比较卡顿,然后使用ldd --version命令查看当前的glibc 版本仍然是2.18.

同时我心中也有点暗自高兴,难道通过上面的一通操作把centos7的glibc版本已经正常升级到2.18了吗?接着我去运行之前有报错提示的程序,结果有点让我失望,还是提示/lib64/libc.so.6: version GLIBC_2.18 not found,看来目前的glibc版本已经是2.17了,只是ldd命令显示的不正常而已。

4.重新安装glibc相关软件包

首先使用以下命令查看当前的glibc 2.17相关的软件包。

rpm -qa | grep glibc

在这里插入图片描述
使用下面的命令重新安装glibc。

yum reinstall -y glibc-2.17-326.el7_9.x86_64 glibc-headers-2.17-326.el7_9.x86_64 glibc-devel-2.17-326.el7_9.x86_64 compat-glibc-2.12-4.el7.centos.x86_64 glibc-common-2.17-326.el7_9.x86_64 compat-glibc-headers-2.12-4.el7.centos.x86_64

在这里插入图片描述
再次使用ldd --version命令查看glibc的版本已经是2.17了。
在这里插入图片描述
重启系统,一切正常。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1501301.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

史上最全AP/mAP通用代码实现(yolov5 txt版本)-下

提示:通用map指标框架代码介绍,直接使用yolov5数据格式,实现论文map指标计算代码解读 文章目录 前言该版本是直接使用yolo数据格式实现map计算,集成txt转json格式内容。 一、map模块整体认识二、map计算应用代码解读三、通用map计…

指针进阶(4)看一下这些与指针有关的题你都会做吗?

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行&am…

JVM-垃圾收集器G1

G1垃圾回收器 概述: 是一款面向服务器的垃圾收集器,主要针对配备多个处理器及大容量内存的机器. 以极高效率满足GC停顿时间要求的同时,还具备高吞吐量性能特征.G1保留了年轻代和老年代的概念,但不再是物理隔阂了,它们都是(可以不连…

供应链管理系统(SCM):得供应链得天下不是空话。

2023-08-26 15:51贝格前端工场 Hi,我是贝格前端工场,优化升级各类管理系统的界面和体验,是我们核心业务之一,欢迎老铁们评论点赞互动,有需求可以私信我们 一、供应链对于企业的重要性 供应链对企业经营的重要性不可…

在外包公司搞了2年,出来技术都没了...

先说情况,大专毕业,18年通过校招进入湖南某软件公司,干了接近6年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的的功能…

O2O:Sample Efficient Offline-to-Online Reinforcement Learning

IEEE TKDE 2024 paper Introduction O2O存在策略探索受限以及分布偏移问题,进而导致在线微调阶段样本效率低。文章提出OEMA算法首先使用离线数据训练乐观的探索策略,然后提出基于元学习的优化方法,减少分布偏移并提高O2O的适应过程。 Meth…

Java零基础 - 数组的定义和声明

哈喽,各位小伙伴们,你们好呀,我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后…

React-Redux中actions

一、同步actions 1.概念 说明:在reducers的同步修改方法中添加action对象参数,在调用actionCreater的时候传递参数,数会被传递到action对象payload属性上。 2.reducers对象 说明:声明函数同时接受参数 const counterStorecre…

DDoS和CC攻击的原理

目前最常见的网络攻击方式就是CC攻击和DDoS攻击这两种,很多互联网企业服务器遭到攻击后接入我们德迅云安全高防时会问到,什么是CC攻击,什么又是DDoS攻击,这两个有什么区别的,其实清楚它们的攻击原理,也就知…

mybatis中使用<choose><when><otherwise>标签实现根据条件查询不同sql

项目场景&#xff1a; 有时候业务层未进行条件处理那么在sql怎么操作呢,这里我是将c#版本的代码改成Java版本的时候出现的问题,因为c#没有业务层 更多操作是在sql中实现的 也就是业务层和编写sql地方一起写了,当我按照c#代码改Java到写sql时发现<if>标签不能实现我们业务…

3.8 动态规划 背包问题

一.01背包 46. 携带研究材料&#xff08;第六期模拟笔试&#xff09; (kamacoder.com) 代码随想录 (programmercarl.com) 携带研究材料: 时间限制&#xff1a;5.000S 空间限制&#xff1a;128MB 题目描述: 小明是一位科学家&#xff0c;他需要参加一场重要的国际科学大会…

OpenCascade源码剖析:Handle类

Handle其实就是智能指针的上古版本&#xff0c;了解一点C11的应该对shared_ptr非常熟悉&#xff0c;那么你就把Handle当做shared_ptr来理解就没有任何问题了。 不过OCCT的Handles是侵入式的实现&#xff0c;前面讲过Standard_Transient类提供了引用计数机制&#xff0c;这个就…

新质生产力助春播春管:佳格天地连续第5年上线大数据平台,服务春季生产

随着“惊蛰”节气过去,全国各地陆续掀起春播春管热潮。今年的政府工作报告中指出,2023年我国粮食产量1.39万亿斤,再创新高。2024年要坚持不懈抓好“三农”工作,扎实推进乡村全面振兴,粮食产量预期目标1.3万亿斤以上。 粮食产量预期目标的明确为一年农事生产指引了方向。同时,新…

地址分词 | EXCEL批量进行地址分词,标准化为十一级地址

一 需求 物流需要对用户输入地址进行检查&#xff0c;受用户录入习惯地址可能存在多种问题。 地址标准化是基于地址引擎和地址大数据模型&#xff0c;自动将地址信息标准化为省、市、区市县、街镇、小区、楼栋、单元、楼层、房屋、房间等元素&#xff0c;补充层级缺失数据、构建…

导出谷歌gemma模型为ONNX

参考代码如下&#xff08;从GitHub - luchangli03/export_llama_to_onnx: export llama to onnx修改而来&#xff0c;后面会合入进去&#xff09; 模型权重链接参考&#xff1a; https://huggingface.co/google/gemma-2b-it 可以对modeling_gemma.py进行一些修改(transforme…

LLCC68与SX1278 LoRa模块的优势对比?

LLCC68和SX1278都是Semtech公司推出的LoRa调制解调器模块&#xff0c;属于LoRa模块家族。它们在无线通信领域都有着广泛的应用&#xff0c;但具体的优势会取决于具体的应用场景和需求。下面是对LLCC68和SX1278 LoRa模块的一些优势对比&#xff1a; LLCC68 LoRa模块的优势&#…

qt自定义时间选择控件窗口

效果如图&#xff1a; 布局如图&#xff1a; 参考代码&#xff1a; //DateTimeSelectWidget #ifndef DATETIMESELECTWIDGET_H #define DATETIMESELECTWIDGET_H#include <QWidget> #include <QDateTime>namespace Ui { class DateTimeSelectWidget; }class DateTim…

【手游联运平台搭建】游戏平台的作用

随着科技的不断发展&#xff0c;游戏行业也在不断壮大&#xff0c;而游戏平台作为连接玩家与游戏的桥梁&#xff0c;发挥着越来越重要的作用。游戏平台不仅为玩家提供了便捷的游戏体验&#xff0c;还为游戏开发者提供了广阔的市场和推广渠道。本文将从多个方面探讨游戏平台的作…

扩展CArray类,增加Contain函数

CArray不包含查找类的函数&#xff0c;使用不便。考虑扩展CArray类&#xff0c;增加Contain函数&#xff0c;通过回调函数暴露数组元素的比较方法&#xff0c;由外部定义。该方法相对重载数组元素的“”符号更加灵活&#xff0c;可以根据需要配置不同的回调函数进行比较 //类型…

继深圳后,重庆与鸿蒙展开原生应用开发合作

截至2023年底&#xff0c;开源鸿蒙开源社区已有250多家生态伙伴加入&#xff0c;开源鸿蒙项目捐赠人达35家&#xff0c;通过开源鸿蒙兼容性测评的伙伴达173个&#xff0c;累计落地230余款商用设备&#xff0c;涵盖金融、教育、智能家居、交通、数字政府、工业、医疗等各领域。 …