什么是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以及升级后引发的灾难相关推荐

  1. 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 ...

  2. 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. ...

  3. 升级xcode5.1 iOS 6.0后以前的横屏项目 变为了竖屏

    升级xcode5.1   iOS 6.0后以前的横屏项目 变为了竖屏,以下为解决办法: 在AppDelegate 的初始化方法 - (BOOL)application:(UIApplication * ...

  4. 升级AndrOid4.3,三星S4升级Android 4.3系统后应用停止运行的解决办法图解

    三星日前向国行的Galaxy S4 I9500推送了安卓4.3系统更新,引入了不少新特性,但也有部分网友升级后经常会出现应用停止运行(FC),甚至是重启卡在LOGO界面的问题. 其实这个问题的根源很简 ...

  5. mac升级到 macos ventura 13.0 后,git失效及gitlab认证失败问题

    首先失效问题的解决 打开终端在命令行输入(terminal输入): xcode-select --install 系统会跳出窗口提醒 xcode-select: note: install reque ...

  6. 正在升级android s7,喜欢!升级Android 8.0后,三星S7可以获取新的UI和Bixby: 功能太多...

    Galaxy S7和S7 edge是三星在2016年的旗舰手机. 工厂预装了Android 6.0系统,该系统已于今年1月正式升级为Android 7.0. 按照三星为每个旗舰店更新两个主要Andro ...

  7. gym包更新升级到0.26.2版本后炼丹炉的测试代码

    关于gym包升级到0.26.2版本后炼丹炉测试代码的修改 前两天电脑有问题,重装了系统.就有了关于安装了更新后的软件包跑环境测试代码遇到的问题. 本文包版本分别为--gym version:0.26. ...

  8. iPhone 升级到3.1.2固件后消失了设置IMAP邮件帐户的功能后,设置IMAP方式访问QQ邮箱的方法

    iPhone 升级到3.1.2固件后消失了设置IMAP邮件帐户的功能后,设置IMAP方式访问QQ邮箱的方法 摘要 由 于iPHone 3.1.2的固件后消失了设置IMAP邮件帐户的功能后,如何设置IM ...

  9. 刷机后如何升级android,手机系统怎么升级 三大方法大全【图文】

    最近小编收到网友的问题,提到安卓手机系统怎么升级.对于这个问题,小编可是绞尽脑汁在网络上查找了好多资料,通过查阅资料,小编发现安卓系统升级多数是手机自动升级.或者通过手机自带的软件商店下载升级包.小编 ...

最新文章

  1. python 內建数据类型
  2. VTK:可视化之EdgePoints
  3. 【斗医】【11】Web应用开发20天
  4. 打开软件就遍历桌面和D盘的软件名通过UDP广播的方式发出。服务器监听指定的端口可以获得文件夹名称。不会暴露自己的IP
  5. 商汤3DAR团队-3D视觉组招聘
  6. 蒙太奇经典例子_剧本中如何写好蒙太奇?这15个硬核案例告诉你!
  7. vue 检测ie版本_Vue2+Webpack+ES6 兼容低版本浏览器(IE9)解决方案
  8. 拓端tecdat|MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类
  9. java 模板生成pdf文件
  10. 怎么用计算机打印出东西,打印东西怎么打印出来
  11. bzoj5294: [Bjoi2018]二进制(线段树)
  12. 德勤:制造业企业数字化转型方案(PPT)
  13. 安卓虚拟pc悬浮键盘_PC端鼠标vs手机端手势:两种交互有何异同点?
  14. iOS 打开天猫/淘宝/京东客户端并且进入商品详情页/店铺主页的方法
  15. 华硕路由器(RT-AC86U)架设简易git服务器
  16. ref修改dom样式遇到的问题
  17. Benchmark Factory 使用 简介
  18. 纯css制作遮罩层特效
  19. 高中日语老师教师资格证考试成功通过前辈备考经验分享
  20. 韩松 EIE: Efficient Inference Engine on Compressed Deep Neural Network论文详解

热门文章

  1. c语言中警号的作用,熟悉的警号
  2. 用Odoo实现企业数字化转型有什么好的?
  3. SAP ABAP ZALSM_EXCEL_TO_INTERNAL_TABLE 完整实施的源代码、附件、说明
  4. Linux-ubuntu连接投影仪失败(分辨率不匹配)问题解决
  5. 遭遇职场冷暴力能怎么办?
  6. 大学一年之后竟落到如此地步。。。开学前的挣扎
  7. (手码四万余字)专门为大学生入门的Spring全面详解
  8. 布谷鸟过滤器java使用_Java实现循环体的过滤器
  9. 十二省联考 2019 题解
  10. Android Q 基站刷新接口源码分析 适配双卡手机基站刷新逻辑