最近yum update
给了我大约 130 个需要更新的软件包(大部分与 Scientific Linux 7 上从 GNOME 3.8 升级到 3.14 有关)。我安装了更新,一切顺利,但注销后,计算机挂起。重新启动也会围绕 gnome 的初始化进行。我启动到运行级别 3,使用 yum History undo 进行恢复,然后让计算机再次启动并运行。
每当我以前遇到过这个问题时,都是与视频驱动程序相关的,但是这台笔记本电脑使用科学Linux附带的默认驱动程序,并且由于我不需要重新安装它们来进行内核更新,所以我不明白为什么我需要到现在(并且不知道如何)。
我的问题分为两部分。第一,有没有办法通过查看日志来具体找出 130 个更新中哪一个更新导致了崩溃?如果没有,是否有一种简单的方法来挑选软件包,一个一个地安装它们,以解决这个问题?我不知道如何到达依赖关系树的底部,因此我一次只安装几个。每次我尝试挑选一个包时,它都有 20-30 个依赖项,我不想尝试所有 130 个包来手动找到底部。
答案1
我不会通过反复试验来寻找少量更新,而是制作一个脚本,首先询问更新包的列表,然后取消然后(当然在脚本中)逐步浏览列表并取消任何会产生超过设定阈值数量的软件包的更新,并让 yum 提示我确认实际更新:
- yum 的输出可以使用 awk 进行处理以获得列表包,例如,您会得到如下文本:
libtasn1 x86_64 4.8-1.fc23 更新 325 k parted x86_64 3.2-18.fc23 更新 534 k python-osbs-client noarch 0.20-1.fc23 更新 108 k rpmlint noarch 1.8-6.fc23 更新 192 k 交易概要 =================================================== ================================ 升级41个套餐 总下载大小:7.2 M 这样可以吗[是/否]:
其中给出了受影响的包的数量(以及列表)。
您可以通过向进程传递“n”来让 yum 列出软件包而无需提示,例如,
回声| yum 升级内核
编写这样的脚本需要几个小时,但大大简化了过程。 (我已经使用这种方法来减少不需要的包)。