本帖最后由 qxyokok 于 2020-3-19 11:25 编辑
如果你的linux版本与当前源的版本差距过大,或者你的软件建构在旧版本的软件包上,无法确认新版本能否同样支持的情况下,尤其是生产环境:
千万慎用yum update!!!
之前为了学习Linux,我安装了centos和rhel。在升级过程中,我有了一个很重要的发现。
一开始我的centos是7.0版本,下载的rhel也是7.0版本,内核均为3.10.0-123.el7。
用旧版本是因为,我centos7刚出时候下载了镜像,我懒得下直接安装的。升级到7.7的话,只需要下载945MB的升级就行了,不用重新下载。
rhel7.0是我在网上找到的版本,对应着教学参考书下载的。
centos我无脑升级7.7后,无法开机了,并且出现了很多的故障。我在不断的排除故障后,发现了这个故障可能真的无法修复。我以为毕竟是社区版,如果用rhel会不会稳定一些?
我的rhel7.0是连接的红帽官方源下载的,出现了同样的问题!具体情况如下。
在使用了YUM -Y UPDATE后,经过检查发现了1975个升级包。升级完成后系统版本会从7.0直接到7.7。这些升级包几乎包含了所有的软件同时也包含了内核(版本为3.10.0-1062.el7)。熟悉linux的同学可能知道,软件包之间的依赖关系是很复杂的。
YUM可以帮助我们处理这些复杂的软件包依赖关系,但是不能过分的相信YUM是多么的智能化。在版本差距过大的情况下,YUM也救不了你……
当时我的系统升级包在下载完成后,
(吐槽rhel的源是真的慢,慢到我整整下载了一天,centos的一小会儿就下载完了,有镜像源真是爽)
开始了自动安装的过程。YUM一开始还是做的挺不错的。到了后面当一个包关联好几个包,这好几个包又关联好几个包,有的包出现了分版本的情况等诸多情况之后,开始频繁的出现ERROR报错,报错的原因主要都是因为依赖安装的先后没有自动识别好,导致有的前置包没更新,后包为了另一些包已经更新,前后无法匹配,导致后续依赖前两个包的程序又无法安装。(有点绕,大意就是,YUM自己把自己绕晕了)
之后不断的提示安装的新包出现了重复。(有需要处理重复包问题的同学,可以参考这里的解决方法)
**
1、首先我通过yum install yum-utils -y安装了管理重复包的利器**
2、然后清除了YUM的缓存yum clean all
3、列出所有重复的包package-cleanup --dupes看一下,重复的太多了……一屏幕都放不下,用more看了下有好几屏幕
4、接下来解决他们!package-cleanup --cleandupes --removenewestdupes
5、清除掉了那些不断提示重复的包,然后又把损坏的包剃掉package-cleanup --problems
6、我以为万事大吉了(通常情况下,到了这一步就解决问题了),重新开始yum -y update
结果仍然提示有重复包(OMG……)
我看了一下,用package-cleanup --cleandupes重新清理,提示无法清理
在仔细阅读后,看明白了……
大意说的是,包被依赖关系连起来了,装第一个必须升级第二个,升级第二个需要停止第三个,然而第三个正在使用中无法停止,重启后可停止……
太麻烦了……
敲入reboot!
就此无法开机……
开机的情况瘫痪的厉害,连报错都看不见,在GURB选择内核之后就黑屏,或者偶尔会显示一两行字。
GURB显示当前内核仍然为3.0.10-123.el7,但是里面的各种软件包已经升级了95%。
到目前为止,仍然在尝试解决。
这是我在实验环境出现的问题,如果是生产环境无脑YUM UPDATE,很可能让你吃个大亏!切记升级前慎重!
Tips:这里提一个小技巧,我在gnome桌面升级的时候黑屏了(桌面自己升级肯定是没办法显示的)。这时候可以按下Ctrl+Alt+F2切换成命令行模式,接着用。
愿正在学习linux路上的你,我的经验可以让你省一些力气。一直查国内外的各种资料确实很累啊~
更新:已经修好啦~~哈哈~
经过一系列的研究后发现,系统确实拆的七零八落无法独自修复,靠系统自己是肯定靠不住了。正在惆怅之时,电脑“叮”的一声,我的rhel8.1下载好了。这个镜像一直断,我可是折腾下载了一个星期啊!!!我在网上只找到了RHEL8.0的镜像,各种渠道里都没有RHEL8.1的镜像,我估计我要成为全网首发了哈哈~~
下载地址在我传到云上后分享给大家。
言归正传,我在安装rhel8.1的时候忽然看到了修复模式。
我怎么把这么重要的功能忘却了??!!
打开修复模式,挂载root,配置临时网络,然后按照我上面的流程再次操作一遍。
不就是系统里的包因为正在运行的原因,导致依赖包乱了么。在我大救援模式下,我不用你的系统好不好嘞~
果然,非常顺利的清除掉重复包和故障损坏包,然后yum -y update,全部重新下载,依次配对依赖包,修复完成~~~
这里我要更正一下上面我写的有误的内容。不是YUM本身太蠢,蠢的地方是在YUM分不清哪些先装,哪些后装,哪些包在什么时候重启,重启后接着怎么装。这些情况目前似乎也没有什么好的解决方法。如果您有什么好的方法,欢迎留言,我也学习一下。
发生这次崩溃事故的本质原因,是YUM无法正常处理正在使用且不重启没有办法停止的系统关键服务包。
对于这种包,多半还是因为系统版本跨度太大,才会出现这种情况。应用包+底层包+内核一起更新,无脑用YUM肯定还是要完蛋的。
最终结论还是和开头一样:
如果你的linux版本与当前源的版本差距过大,或者你的软件建构在旧版本的软件包上,无法确认新版本能否同样支持的情况下,尤其是生产环境:
千万慎用yum update!!!
更新:
最新红帽系统镜像我上传完了,下面是下载链接,里面包含RHEL7.0 7.7 8.1三个版本。想尝试8.1的,下载就好~
链接:https点//pan点baidu点com/s/1dNlL6FMp_w7H0VoTG4d0yw
提取码:27fk
SHA-256 Checksum:
2323ad44d75df1a1e83048a34e196ddfedcd6c0f6c49ea59bf08095e3bb9ef65
红帽8.1 RHEL8.1
下载
rhel8.1
下载
Download Red Hat Enterprise Linux 8.1 RHEL8.1.ISO rhel8.1.iso
RHEL8.1 rhel8.1
欢迎评分~~
原网址: 访问
创建于: 2020-10-14 16:59:41
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论