Centos7 64位 -- glibc-2.29 编译升级方法(已成功)
某软件出现漏洞,需要升级解决(忘了哪个)结果提示glibc版本过低、
懵懂无知的我以为glibc想其他软件一样编译升级一下就好。。
结果? 重装系统!
说真的,如非必要(或学习),请勿升级 glibc!
一、心理准备
咱们先来说一下,glibc 出错你会出现什么问题:
1. 影响最小的情况下,无法解析名称空间(不过你可以通过ip连接网络)
2. 无法使用rpm yum (对文件非常熟悉的话解包复制还是可以的)
3. 无法使用 su 登陆,无法切换用户(单是这样的话单用户模式还是可以使用的)
4. bash 使用不了,这种情况下整个系统你只能使用 cd 或者 export 等屈指可数的指令(只有救援模式可救)
二、物理准备
1. 准备一个U盘启动盘 ,用于拯救系统,具体见我的另外一篇随笔:Centos7 -- glibc 升级失败、意外删除、故意删除后的处理方法
2. 下载 glibc、make 的 feroda29系统 rpm包 (选用feroda的包是最接近目标的,目前本人的系统为 centos7.6, 但glibc升级需求的工具仍达不到版本需求):
安装地址:全部百度都有,有空的话我再发出来
以下5个装了之后你的系统就能正常用了(缺一不可)
glibc-2.28-26.fc29.x86_64.rpm //基础包,没个bash用不了
glibc-common-2.28-26.fc29.x86_64.rpm //基础包的依赖包
glibc-all-langpacks-2.28-26.fc29.x86_64.rpm //语言包,缺的话你的字符终端会看到非常多星星
libnsl-2.28-26.fc29.x86_64.rpm //名称空间的库,没有的话su登录不了,dns也无法域名解析
libxcrypt-4.4.4-2.fc29.x86_64.rpm //加密用的库,远程传输都需要用到
想继续玩编译的话还需要以下几个包:
gcc-8.3.1-2fc29.x86_64.rpm
glibc-devel-2.28-26.fc29.x86_64.rpm
glibc-headers-2.28-26.fc29.x86_64.rpm
libxcrypt-devel-4.4.4-2.fc29.x86_64.rpm
make-4.2.1-10.fc29.x86_64.rpm
三、安装必要rpm包(升级到glibc-2.28)
1. 按顺序安装rpm包:
# rpm -Uvh glibc-2.28-26.fc29.x86_64.rpm --nodeps //与comm为互相依赖,必须要加 --nodeps
# rpm -Uvh glibc-common-2.28-26.fc29.x86_64.rpm
# rpm -Uvh glibc-all-langpacks-2.28-26.fc29.x86_64.rpm
# rpm -Uvh libnsl-2.28-26.fc29.x86_64.rpm
# rpm -Uvh libxcrypt-4.4.4-2.fc29.x86_64.rpm
2.重启检查系统是否正常运行
# shutdown -r now
期间会卡一段时间并重启,先不要管
待重启成功后检查系统功能是否正常, 如不正常请参照:
Centos7 -- glibc 升级失败、意外删除、故意删除后的处理方法
删除新版gblic重装旧版glibc后再来一遍
3.安装剩下开发包
# rpm -Uvh gcc-8.3.1-2fc29.x86_64.rpm //如果安装失败请通过编译方式,由于我之前已升级gcc,此步忽略了
# rpm -Uvh glibc-devel-2.28-26.fc29.x86_64.rpm --nodeps
# rpm -Uvh glibc-headers-2.28-26.fc29.x86_64.rpm
# rpm -Uvh libxcrypt-devel-4.4.4-2.fc29.x86_64.rpm
# rpm -Uvh make-4.2.1-10.fc29.x86_64.rpm
四、编译升级 glibc-2.29
其实上一步完成后你的glibc已经是次新版了,如果不想浪费时间可以就此停止
1.下载 glibc-2.29 源码
官网:http://www.gnu.org/software/libc/sources.html
# wget http://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz
# tar zxf glibc-2.29.tar.gz
# cd glibc-2.29
2.查看文档
# cat INSTALL //先看看文档吧
需求工具版本:
*GNU 'make' 4.0 or newer
*GCC 5 or newer
*GNU 'binutils' 2.25 or later
*GNU ‘textinfo’' 4.7 or later
*GNU 'awk' 3.1.2 or later
*GNU 'bison' 2.7 or later
*Perl 5
*GNU 'sed' 3.02 or later
*Python 3.4 or later
*PExpect 4.0
*GDB 7.8 or later with support for Python 2.7/3.4 or later
3.编译安装
# mkdir tmpdir //glibc只能在其他目录进行编译,gcc也是
# cd tmpdir
# ../configure --prefix=/ // 期间如果报错相应工具版本过老,请升级相应的包,如果提示是 compiler 那你要升级gcc
# make && make install
# init 6 // 期间会卡一段时间并重启,耐心等候
总结:
glibc是linux非常底层的工具库(内核之上,一切工具之下),一旦出错很可能整个系统无法使用
因此如非特殊情况,尽量不要升级glibc,即使升级也要做好万全的准备!
Centos7 64位 -- glibc-2.29 编译升级方法(已成功)的更多相关文章
- 002-docker安装-mac上安装docker,17.06在CentOS7 64位机器上安装
一.mac上安装docker 1.下载 通过这个链接下载:https://download.docker.com/mac/stable/Docker.dmg 2.安装 将 Moby 的鲸鱼图标拖拽到 ...
- CentOS7 64位 安装MySQL5.7
安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo ...
- 超详细的CentOS7 64位下MySQL5.7安装与配置(YUM)【转发+新创】
安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo ...
- 下载Centos7 64位镜像
下载Centos7 64位镜像 1.打开Centos官网 打开Centos官方网站地址:https://www.centos.org/,点击Get CentOS Now 2.点击Minimal ISO ...
- CentOS7 64位下MySQL5.7安装与配置(YUM)转
安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo ...
- CentOS7 64位下MySQL5.7安装与配置
安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo ...
- 安装MySQL5.7 安装环境:CentOS7 64位 MINI版,
安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo ...
- CentOS7 64位下MySQL安装与配置(YUM)
安装环境:腾讯云CentOS7 64位安装MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum ...
- Windows10 64位下安装TensorFlow谷歌人工智能系统已官方原生支持
Windows10 64位下安装TensorFlow谷歌人工智能系统已官方原生支持 GitHub - tensorflow/tensorflow: Computation using data flo ...
随机推荐
- Django基础篇--Models
在Django中创建与数据库的链接并调用数据库的数据是很关键的步骤,那么怎么实现这个过程呢? 下面这篇文章简单梳理了一下创建Model层的过程和应用 模型-Models 首先需要理解什么是模型? 模型 ...
- (后台)There is already 'jy.controller.jyadmin.JyDealerPackingReturnController' bean method
项目报了一个错误,百度翻译了一下: “我已经有jy.controller.jyadmin.jydealerpackingreturncontroller豆方法公共org.springframework ...
- SolrCloud集群搭建(基于zookeeper)
1. 环境准备 1.1 三台Linux机器,x64系统 1.2 jdk1.8 1.3 Solr5.5 2. 安装zookeeper集群 2.1 分别在三台机器上创建目录 mkdir /usr/hdp/ ...
- Nginx下配置网站SSL实现https访问本站就是用的这方法
本文出至:新太潮流网络博客 第一步:服务器环境,lnmp即Linux+Nginx+PHP+MySQL,本文中以我的博客为例,使用的是阿里云最低档的ECS+免费的Linux服务器管理系统WDCP快速搭建 ...
- 关于Natively Compiled Stored Procedures的优化
Interpreted Transact-SQL stored procedures are compiled at first execution, in contrast to natively ...
- tcpcopy用法
目标: 将线上服务lighttpd(8000端口)的流量引流到线下测试机 一.测试机: tcpcopy-server,接收流量 modprobe ip_queue iptables -L iptabl ...
- ES6 入门
1.简介 ECMAScript 6.0 是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了.它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序, ...
- java调用Linux执行Python爬虫,并将数据存储到elasticsearch中--(java后台代码)
该篇博客主要是java代码,如需相应脚本及java连接elasticsearch工具类代码,请移步到上一篇博客(https://www.cnblogs.com/chenyuanbo/p/9973685 ...
- golang中的init函数以及main函数
首先我们看一个例子:init函数: init 函数可在package main中,可在其他package中,可在同一个package中出现多次. main函数 main 函数只能在package ma ...
- Decentraleyes - Local emulation of Content Delivery Networks
Decentraleyes, 是一个本地化第三方库文件的浏览器插件,提供三十多种语言支持.大致原理如下: 保存常用的第三方库文件到本地,当打开的页面中需要加载的第三方库文件在本地有副本时,随即进行拦截 ...