rpm数据库损坏 不能使用正常使用yum的处理方法

       不知道有没有跟我一样的小伙伴,在使用yum安装软件时,发现无法正常使用yum安装软件包,下面出现几句英语提示。在使用rpm时也无法正常的使用。其实 是rpm数据库崩溃导致的 下面就简单的介绍一下怎么回复,让其正常的工作,很简单几个命了即可。

1. 出现错误提示,这时我们需要认真的阅读下面的提示,不要乱找原因

[root@centos7 yum.repos.d]# vim YUM.repo 
[root@centos7 yum.repos.d]# yum repolist
error: rpmdb: BDB0113 Thread/process 6396/140171373643584 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 –  (-30973)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:
Error: rpmdb open failed

2.跟着提示cd /var/lib/rpm 下 查看文件 删除_db.* 所有文件

[root@centos7 yum.repos.d]# cd /var/lib/rpm
[root@centos7 rpm]# ls 
Basenames     __db.001  __db.003  Group       Name          Packages     Requirename  Sigmd5
Conflictname  __db.002  Dirnames  Installtid  Obsoletename  Providename  Sha1header   Triggername
[root@centos7 rpm]# rm _db.* -rf

3.删除后 用rpm –rebuilddb 进行数据文件回复

[root@centos7 rpm]# rpm –rebuilddb
[root@centos7 rpm]# ls 
Basenames     Dirnames  Installtid  Obsoletename  Providename  Sha1header  Triggername
Conflictname  Group     Name        Packages      Requirename  Sigmd5

4.用yum update 更新数据即可

[root@centos7 rpm]# yum update

Loaded plugins: fastestmirror, langpacks
base                                                                        | 3.6 kB  00:00:00     
Loading mirror speeds from cached hostfile
Resolving Dependencies
–> Running transaction check
—> Package httpd.x86_64 0:2.4.6-40.el7.centos will be updated
—> Package httpd.x86_64 0:2.4.6-45.el7.centos will be an update
—> Package httpd-tools.x86_64 0:2.4.6-40.el7.centos will be updated
—> Package httpd-tools.x86_64 0:2.4.6-45.el7.centos will be an update
—> Package lftp.x86_64 0:4.4.8-7.el7 will be updated
—> Package lftp.x86_64 0:4.4.8-8.el7 will be an update
—> Package telnet.x86_64 1:0.17-59.el7 will be updated
—> Package telnet.x86_64 1:0.17-60.el7 will be an update
–> Finished Dependency Resolution
Dependencies Resolved
===================================================================================================
 Package                 Arch               Version                         Repository        Size
===================================================================================================
Updating:
 httpd                   x86_64             2.4.6-45.el7.centos             base             2.7 M
 httpd-tools             x86_64             2.4.6-45.el7.centos             base              84 k
 lftp                    x86_64             4.4.8-8.el7                     base             751 k
 telnet                  x86_64             1:0.17-60.el7                   base              63 k
Transaction Summary
===================================================================================================
Upgrade  4 Packages
Total download size: 3.6 M
Is this ok [y/d/N]: y
Downloading packages:
—————————————————————————————————
Total                                                               20 MB/s | 3.6 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : httpd-tools-2.4.6-45.el7.centos.x86_64                                            1/8 
  Updating   : httpd-2.4.6-45.el7.centos.x86_64                                                    2/8 
  Updating   : lftp-4.4.8-8.el7.x86_64                                                                  3/8 
  Updating   : 1:telnet-0.17-60.el7.x86_64                                                           4/8 
  Cleanup    : httpd-2.4.6-40.el7.centos.x86_64                                                    5/8 
  Cleanup    : httpd-tools-2.4.6-40.el7.centos.x86_64                                            6/8 
  Cleanup    : lftp-4.4.8-7.el7.x86_64                                                                 7/8 
  Cleanup    : 1:telnet-0.17-59.el7.x86_64                                                           8/8 
  Verifying  : 1:telnet-0.17-60.el7.x86_64                                                            1/8 
  Verifying  : httpd-tools-2.4.6-45.el7.centos.x86_64                                             2/8 
  Verifying  : httpd-2.4.6-45.el7.centos.x86_64                                                     3/8 
  Verifying  : lftp-4.4.8-8.el7.x86_64                                                                   4/8 
  Verifying  : httpd-2.4.6-40.el7.centos.x86_64                                                     5/8 
  Verifying  : httpd-tools-2.4.6-40.el7.centos.x86_64                                             6/8 
  Verifying  : 1:telnet-0.17-59.el7.x86_64                                                            7/8 
  Verifying  : lftp-4.4.8-7.el7.x86_64                                                                  8/8 
Updated:
  httpd.x86_64 0:2.4.6-45.el7.centos            httpd-tools.x86_64 0:2.4.6-45.el7.centos           
  lftp.x86_64 0:4.4.8-8.el7                     telnet.x86_64 1:0.17-60.el7                        
Complete!

5.rpm和yum 恢复正常使用

[root@centos7 rpm]# rpm -q ntp

ntp-4.2.6p5-25.el7.centos.x86_64

[root@centos7 yum.repos.d]# yum clean all
Loaded plugins: fastestmirror, langpacks
Cleaning repos: base
Cleaning up everything
Cleaning up list of fastest mirrors

原创文章,作者:huchaowei,如若转载,请注明出处:http://www.178linux.com/78003

(3)
huchaoweihuchaowei
上一篇 2017-06-13 11:36
下一篇 2017-06-13 15:19

相关推荐

  • Linux Sysadmin–part4

    一、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) A.POST加电自检 主板在接通电源后,系统首先由POST程序来对内部各个设备进行检查,自检中如发现有错误,将按两种情况处理:对于严重故障(致命性故障)则停机,此时由于各种初始化操作还没完成,不能给出任何提示或信号;对于非严重故障则给出提示或声音报警信号,等待用户处理。 B.BIOS…

    2017-10-10
  • linux文件目录详解

    linux目录结构   (且看且不看) 历史上 /usr和 /etc文件夹下既保存静态文件,也保存可变文件,后来有了/var层次结构,/usr下面的可变文件被转移到/var下面。因而/usr现在可以只读的方式挂载(如果它在单独的文件系统上)。 /etc下的可变文件早已转移到/var,因为技术上允许/ 根是系统内核启动后挂载的第一个分区,挂载到根上的…

    Linux干货 2017-05-31
  • 马哥教育网络版25期+第一周作业

    1、描述计算机的组成及其功能 计算机是由CPU,控制器,RAM,输入设备,输出设备组成的 2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别 现如今主流的LINUX发行版系列主要有: Debian,Slackware,Redhat,这些发行版都是基于GUNLinux开发的,不过是由不同的组织或团体开发并发行的。 3、描述Linux的哲学思想,…

    Linux干货 2016-12-05
  • shell编程之循环

           当需要重复运行特定的指令以满足系统管理工作需要时,条件判断语句if、case并不能很好地提供支撑,shell提供了for、while、until循环语句来满足此需求。 一、for循环语句        for循环用于重复整个对象列表,依次遍历对列…

    Linux干货 2016-08-18
  • LVM逻辑卷管理

    LVM逻辑卷管理 LVM全称为Logical VolumeManager逻辑卷管理器,LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。 其中 PV:Physical Volume 物理卷 VG:volume Group 卷组 LV:Logincal Volume 逻辑卷 实验…

    2017-08-14
  • 位置变量&特殊变量总结

    位置变量 常用的位置变量有 $1, $2, $3 ……,表示命令行传给脚本的第一个参数,第二个参数,第三个参数。。。 $0 表示脚本的文件名,比如a.sh 位置变量在脚本中的主要作用,是让脚本通过他们来获取命令行传递给脚本的参数。 变量位置调整 shift [n] 用于调整变量位置 第n+1个位置变量会被重新命名为$1…

    Linux干货 2016-08-15