当我使用command更新我的RHEL时yum update
,它会列出所有更新包,在我点击Y表示是后,得到以下响应。
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
Killed
答案1
这可能根本不是一个严重的问题看这里:
yum 消息“警告:RPMDB 在 yum 外部更改。” [...] 意味着某些应用程序在未通过 Yum API 的情况下更改了 rpm 数据库(安装或删除了软件包)。这几乎总是由于有人直接使用 rpm(即 rpm -ivh blah.rpm),但另一种可能性是构建在 rpm API 之上的应用程序(即 smart、apt、zypp)。
因此,这可能是您无意中执行的操作,或者是某个软件执行的操作。希望这不是一个大问题,可以通过以下方式解决:
yum clean all
查看 CLEAN OPTIONS 来man yum
了解它的作用。基本上它会删除任何与 RPMDB 有关的本地缓存数据;通常这用于加速事务处理,因此下次运行 yum 时可能会花费更长的时间,因为它需要替换您刚刚清除的(损坏的)数据。
答案2
尽管这是一个老话题,但这个问题有时仍然存在。
我遇到的问题是系统没有足够的内存来处理更新,所以最终它被杀死了。
解决方案是在磁盘上创建一个交换文件,不是最快的,但它可以工作:
sudo fallocate -l 2G /swapfile
sudo mkswap /swapfile
chmod 0600 /swapfile
swapon /swapfile
在此之后更新就可以正常工作了。