如何升级libc.so.6以及升级后引发的灾难
什么是libc/glibc?,他们有啥用?
不知道的话,你可以点右上角的×了,你还是先思考一下为什么要升级?一定要升级吗?没别的办法了?
glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。
首先说一下我为什么会去升级glibc,大概就是年少无知吧。。。
硬件环境:RK3399
软件环境:aarch64 centos7.9 libc 2.17 updateEngine
过程:
我把的centos7.9移植rk3399上,但是由于需要使用rk提供的updateEngine做ota升级,编译sdk后生成updateEngine工具,拷贝到centos后无法运行,缺少libpng.so,然后拷贝libpng.so到系统下,发现libc.so等等库版本太低了,于是我第一的想法就是解决版本库太低的问题,就开始了我的升级之路了。
下载链接:http://ftp.gnu.org/gnu/glibc/
编译步骤:1../configure 2.make 3.make install,报错的话就google一下就ok,都能解决
参考一下:https://blog.csdn.net/officercat/article/details/39520227
升级完成:updateEngine可以正常使用了,但是麻烦事也来了,测试那边各种提issue,hwclock 段错误,lspci 重定向出错,lspci -vvv | grep失败也报错,yum update系统宕机,yum卸载软件会把其他系统工具莫名奇妙卸载等等。
解决问题:我发现旧版本的centos是不存在这个问题,然后hwclock和 lspci等软件工具的问题可以重新编译即可解决,但是yum update系统崩溃(因为检测到各种lib和source依赖之间不对,yum update会进行大量的更新,更新完就挂了)。由于更新了系统不稳定性太大了,最近决定还原回去,问题解决。
回到原点:怎么解决updateEngine的问题呢?
updateEngine编译环境:Ubuntu18.04 ,rk3399 sdk
解决方案:
1.使用centos的lib编译updateEngine,只要它不用高版本libc的特性就好,修改Makefile。
2.静态编译,静态编译就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。修改Makefile
我用的就是第三种
3.在我准备修改Makefile的时候我发现了updateEngine有个No_UI的变量,噢噢噢,然后再仔细看一下libpng库是updateENgine UI界面的时候调用,我们并不需要,然后修改一下配置文件去掉,解决了。
总结:centos为什么系统库都这么老了,就是为了稳定性,更新有风险,请谨慎。现在centos8以上的系统库都已经比较新了,需要的话可以换到centos8以上的版本
如何升级libc.so.6以及升级后引发的灾难相关推荐
- gns3 1.3.9升级到gns3 1.3.11后,升级gns3 iouvm解决版本不匹配问题
gns3 1.3.9升级到gns3 1.3.11后,gns3 iouvm也需要升级到1.3.11版本才能使用. 升级方法: 1.为gns3 iouvm虚拟机添加一块NAT网卡 2.进入gns3 iou ...
- android apt最新版本,解决Android studio 2.3升级到Android studio 3.0 后apt报错问题
解决Android studio 2.3升级到Android studio 3.0 后apt报错问题 发布时间:2020-09-16 19:59:42 来源:脚本之家 阅读:62 作者:哈特中尉 1. ...
- 升级xcode5.1 iOS 6.0后以前的横屏项目 变为了竖屏
升级xcode5.1 iOS 6.0后以前的横屏项目 变为了竖屏,以下为解决办法: 在AppDelegate 的初始化方法 - (BOOL)application:(UIApplication * ...
- 升级AndrOid4.3,三星S4升级Android 4.3系统后应用停止运行的解决办法图解
三星日前向国行的Galaxy S4 I9500推送了安卓4.3系统更新,引入了不少新特性,但也有部分网友升级后经常会出现应用停止运行(FC),甚至是重启卡在LOGO界面的问题. 其实这个问题的根源很简 ...
- mac升级到 macos ventura 13.0 后,git失效及gitlab认证失败问题
首先失效问题的解决 打开终端在命令行输入(terminal输入): xcode-select --install 系统会跳出窗口提醒 xcode-select: note: install reque ...
- 正在升级android s7,喜欢!升级Android 8.0后,三星S7可以获取新的UI和Bixby: 功能太多...
Galaxy S7和S7 edge是三星在2016年的旗舰手机. 工厂预装了Android 6.0系统,该系统已于今年1月正式升级为Android 7.0. 按照三星为每个旗舰店更新两个主要Andro ...
- gym包更新升级到0.26.2版本后炼丹炉的测试代码
关于gym包升级到0.26.2版本后炼丹炉测试代码的修改 前两天电脑有问题,重装了系统.就有了关于安装了更新后的软件包跑环境测试代码遇到的问题. 本文包版本分别为--gym version:0.26. ...
- iPhone 升级到3.1.2固件后消失了设置IMAP邮件帐户的功能后,设置IMAP方式访问QQ邮箱的方法
iPhone 升级到3.1.2固件后消失了设置IMAP邮件帐户的功能后,设置IMAP方式访问QQ邮箱的方法 摘要 由 于iPHone 3.1.2的固件后消失了设置IMAP邮件帐户的功能后,如何设置IM ...
- 刷机后如何升级android,手机系统怎么升级 三大方法大全【图文】
最近小编收到网友的问题,提到安卓手机系统怎么升级.对于这个问题,小编可是绞尽脑汁在网络上查找了好多资料,通过查阅资料,小编发现安卓系统升级多数是手机自动升级.或者通过手机自带的软件商店下载升级包.小编 ...
最新文章
- python 內建数据类型
- VTK:可视化之EdgePoints
- 【斗医】【11】Web应用开发20天
- 打开软件就遍历桌面和D盘的软件名通过UDP广播的方式发出。服务器监听指定的端口可以获得文件夹名称。不会暴露自己的IP
- 商汤3DAR团队-3D视觉组招聘
- 蒙太奇经典例子_剧本中如何写好蒙太奇?这15个硬核案例告诉你!
- vue 检测ie版本_Vue2+Webpack+ES6 兼容低版本浏览器(IE9)解决方案
- 拓端tecdat|MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类
- java 模板生成pdf文件
- 怎么用计算机打印出东西,打印东西怎么打印出来
- bzoj5294: [Bjoi2018]二进制(线段树)
- 德勤:制造业企业数字化转型方案(PPT)
- 安卓虚拟pc悬浮键盘_PC端鼠标vs手机端手势:两种交互有何异同点?
- iOS 打开天猫/淘宝/京东客户端并且进入商品详情页/店铺主页的方法
- 华硕路由器(RT-AC86U)架设简易git服务器
- ref修改dom样式遇到的问题
- Benchmark Factory 使用 简介
- 纯css制作遮罩层特效
- 高中日语老师教师资格证考试成功通过前辈备考经验分享
- 韩松 EIE: Efficient Inference Engine on Compressed Deep Neural Network论文详解
热门文章
- c语言中警号的作用,熟悉的警号
- 用Odoo实现企业数字化转型有什么好的?
- SAP ABAP ZALSM_EXCEL_TO_INTERNAL_TABLE 完整实施的源代码、附件、说明
- Linux-ubuntu连接投影仪失败(分辨率不匹配)问题解决
- 遭遇职场冷暴力能怎么办?
- 大学一年之后竟落到如此地步。。。开学前的挣扎
- (手码四万余字)专门为大学生入门的Spring全面详解
- 布谷鸟过滤器java使用_Java实现循环体的过滤器
- 十二省联考 2019 题解
- Android Q 基站刷新接口源码分析 适配双卡手机基站刷新逻辑