RPM数据库由CentOS中的/ var / lib / rpm /目录下的文件和其他企业Linux发行版(如RHEL , openSUSE , Oracle Linux等)组成。

如果RPM数据库损坏, RPM将无法正常工作,因此更新无法应用到您的系统,您在通过YUM软件包管理器更新系统上的软件包时遇到错误。 最糟糕的情况是无法成功运行任何rpm和yum命令。

导致RPM数据库损坏的因素有很多,例如以前的事务不完整,安装某些第三方软件,删除特定软件包等等。

在本文中,我们将演示如何重建损坏的RPM数据库; 通过这种方式,您可以从CentOS中的RPM数据库损坏中恢复。 这需要root用户权限,否则使用sudo命令获得这些权限。

在CentOS中重建损坏的RPM数据库

首先开始备份当前的RPM数据库,然后继续操作(将来可能需要它),然后使用以下命令。# mkdir /backups/

# tar -zcvf /backups/rpmdb-$(date +"%d%m%Y").tar.gz /var/lib/rpm

备份RPM数据库

接下来,验证主包元数据文件/ var / lib / rpm / Packages的完整性; 这是需要重新构建的文件,但首先删除/ var / lib / rpm / __ db *文件以防止使用以下命令失效锁定。# rm -f /var/lib/rpm/__db*

# /usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages

验证RPM数据库

如果上述操作失败,意味着您仍然遇到错误,那么您应该转储并加载新的数据库。 如下所示验证新加载的Packages文件的完整性。# cd /var/lib/rpm/

# mv Packages Packages.back

# /usr/lib/rpm/rpmdb_dump Packages.back | /usr/lib/rpm/rpmdb_load Packages

# /usr/lib/rpm/rpmdb_verify Packages

转储和加载RPM数据库

现在要检查数据库标题,使用-q和-a标志查询所有已安装的软件包 ,并尝试仔细观察发送到stderror的任何错误。# rpm -qa >/dev/null#output is discarded to enable printing of errors only

最后但并非最不重要的是,使用以下命令重建RPM数据库, -vv选项允许显示大量调试信息。# rpm -vv --rebuilddb

重建RPM数据库

使用dcrpm工具检测并更正RPM数据库

我们还发现了用于识别和纠正众所周知的与RPM数据库损坏相关的问题的dcrpm (detect and correct rpm)命令行工具。 这是一个简单易用的工具,您可以无需运行即可运行。 为了有效和可靠的使用,您应该通过cron定期运行它。

你可以从源代码安装它; 下载源代码树并使用setup.py安装它(它也应该从pypi获取psutil依赖项),如图所示。# git clone https://github.com/facebookincubator/dcrpm.git

# cd dcrpm

# python setup.py install

一旦你安装了dcrpm ,运行如图所示。# dcrpm

最后,尝试再次运行失败的rpm或yum命令以查看是否一切正常。

就这样! 在本文中,我们已经解释了如何在CentOS中重建损坏的RPM数据库。 要提出任何问题或分享您对本指南的看法,请使用下面的反馈表格。

linux数据库重建,如何在CentOS中重建损坏的RPM数据库相关推荐

  1. 如何在UE5中重建哥特式建筑场景?

    今天给大家分享如何在UE5中重建哥特式建筑场景?一起来看下吧! 1.介绍 哥特式建筑是我最喜欢的风格之一,所以就想用模组化构建一个哥特风格场景,闲言少叙,直接上图! 本次教程会从找参考到制作模组.纹理 ...

  2. Linux教程:如何在CentOS或者RHEL上启用Nux Dextop仓库

    Linux教程:如何在CentOS或者RHEL上启用Nux Dextop仓库 Linux教程:如何在CentOS或者RHEL上启用Nux Dextop仓库 [日期:2014-09-24] 来源:Lin ...

  3. 教你如何在 elasticsearch 中重建索引

    序言 Elasticsearch 是一个实时的分布式搜索分析引擎.Teambition 使用 Elastisearch 作为搜索引擎,为用户提供搜索服务,当我们决定存储某种数据时,我们需要使用PUT ...

  4. 如何在centos中找到安装mysql_如何在CentOS 7上安装MySQL

    随着CentOS 7 MySQL的发布,全球最受欢迎的开源关系数据库管理系统在CentOS的存储库中不再可用,而且MariaDB已成为默认的数据库系统. MariaDB是MySQL的向后兼容,二进制插 ...

  5. linux安装joomla,如何在CentOS 7上安装Joomla

    如何在CentOS 7上安装Joomla 版本1.0 作者:Srijan Kishore 本文档介绍了如何在CentOS 7上安装和配置Joomla.Joomla是一款非常受欢迎的获奖开源内容管理系统 ...

  6. linux nslookup命令安装,在CentOS中安装nslookup命令

    域名查询工具nslookup并不是Win系统的专利,Linux系统中也可以使用,不过要安装,默认没有. 在CentOS中安装nslookup命令: $ sudo yum install bind-ut ...

  7. centos root密码_如何在CentOS中恢复丢失的root密码

    centos root密码 In Linux, when you forget your account password, you can easily reset it using a root ...

  8. wordpress 数据库_如何在WordPress中创建视频库(逐步)

    wordpress 数据库 Recently, a user asked us how to create a video gallery in WordPress. WordPress makes ...

  9. 如何在centos中完全彻底卸载mysql

    CentOS 下如何完全卸载MySQL?解决卸载不干净的问题 系统:CentOS 6.5,MySQL:MySql 5.6 这里主要解决使用rpm安装的卸载问题,安装方法见:CentOS安装MySQL* ...

最新文章

  1. Android移动开发之【通往安卓的神奇之旅】Android的五大布局和AndroidManifest
  2. mybaits三:全局配置文件(全面)
  3. SpringBoot中的Quartz应用
  4. Linux .bin安装文件制作
  5. 【视频】vue表单提交
  6. 【转】C#调用ADOX创建Access数据文件后关闭连接
  7. C#语法精髓之常用的操作符
  8. oracle建立表语句 主键,oracle 创建表sql语句,主键,自增长
  9. likely,unlikely宏与GCC内建函数__builtin_expect()
  10. SQL Server 和 HSQLDB 中使用 merge into 完成 saveOrUpdate
  11. mysql数据恢复(根据.ibd文件恢复数据)
  12. 联想g510拆键盘的简单方法_联想G510重点笔记本拆机教程.doc
  13. Digispark ATtiny85配合Prismatik软件DIY屏幕流光溢彩效果(见坑填坑)
  14. 《三》减小 HTTP 响应的大小
  15. SwiftUI的多列列表
  16. Spring/SpringBoot学习中遇到的问题记录(2):java.lang.ClassNotFoundException:org.apache.jsp.WEB_002dINF.views.xx
  17. Java解析OpenDrive,OpenDrive格式解析
  18. 小程序点击video暂停/开始
  19. 抖音商家发货超时处罚规则,特殊情况及申诉要求是什么丨国仁猫哥
  20. 2021年度软件工程师薪酬报告

热门文章

  1. 为统一规划思想、知识、事情而设计的笔记软件
  2. mac php7安装redis,mac 下安装php7.1 redis
  3. 浅析智能建筑弱电工程防雷接地
  4. [附源码]SSM计算机毕业设计高校班主任班级管理系统JAVA
  5. Python-Django毕业设计基于Java的班主任管理系统的实现(程序+Lw)
  6. 甘特图是什么?甘特图是用来干什么的?
  7. 数据链路层功能之组帧和透明传输
  8. 35岁软件测试工程师如何避免中年危机?10年测试总监的感悟总结
  9. Git 安装与卸载 gitk安装与优化
  10. 效率办公 | python零基础知识点汇总(下)