代码改变世界

Linux - 关于yum警告“警告:RPM 数据库已被非 yum 程序修改。”

2015-08-26 09:45  HermitCarb  阅读(19986)  评论(2编辑  收藏  举报

今天尝试在Cent OS 7上配置ftp服务器,中间想卸载一个程序,百度了一下,可以用人“rpm -e package-name”删除,事实也就是可以删除,然后,再装其他软件时就一直报警告“RPM 数据库已被非 yum 程序修改。”,英文版是“Warning: RPMDB altered outside of yum.”。

 

上网搜了下,大部分都说无关紧要,而且我的操作也的确没有什么高危动作,但是,作为一个负责半个爱钻研的人,怎么可以不明不白就放弃呢?其实是一个高度强迫症患者。怎么看都不舒服,果断再去百度,找啊找,漫天的水;放弃百度,连上VPN,去Google,不得不说,有差距。

 

参考链接:鸟哥的Linux私房菜:http://vbird.dic.ksu.edu.tw/linux_server/linux_basic/0520rpm_and_srpm.php

 

下面说一下我的认识:

yum提供了在线下载安装软件(rpm包)的功能,同时它和rpm维持着一个rpmdb(rpm数据库),这个数据库记录着rpm包的基本信息。当你使用yum命令时,yum程序通过从网络获取版本列表,然后对比rpm数据库中本地版本列表,给出安装/更新/已安装等的说明。在用rpm命令安装程序时,可能会出现rpm包的依赖问题。换句话说,就是你要安装A,那好,我先看看你有没有安装B。如果你安装过了B,你就可以安装A;否则,要么你先去安装B再来安装A,要么就不要装A。这还不算完,有可能B还要求你先安装C和D。yum提供了这一部分的功能,使你不必人工进行这些繁琐的工作。

 

参考链接:http://illiterat.livejournal.com/7834.html

至于上面的警告的问题,不必太过惊慌。首先yum的新特征是要成为系统中用户对程序进行管理的接口,这要求yum知道系统中所有的对软件包的操作(yum history)。其次是由于rpm常常被滥用。人们常常直接用rpm去解决一些问题,但这往往会带来更多问题,而且看起来好像是yum的错。推荐就只用yum或者说yum的API进行安装/更新/删除软件包。如果你不喜欢yum,你也可以完全不用yum。如果你会用到但不仅只用到yum的话,又不喜欢看到这个警告,你可以去“yum.conf”里把“history_record”设置为“false”。

 

像我这种强迫症怎么甘心用上面的解决方法自欺欺人呢?

于是我就测试了下,发现,yum重新安装刚才卸载的那个软件(用rpm卸载的,导致上面警告的软件),然后再用yum remove卸载一次,就会解决这个警告。嘻嘻……