使用云服务器执行yum时,rpm损坏和无法为立即文档创建临时文件: 设备上没有空间的解决方案

        RPM包是Redhat和许多版本的linux(SUSE,红旗,Turbo)采用的一种软件包,或者说是一种软件包管理的方法。全称是:Redhat package mangement,是红帽子的发明。

出现问题

        当我们配置完本地yum后使用yum时

[root@master ~]# yum clean

error: rpmdb: BDB0113 Thread/process 4989/139909188998976 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

        通常情况下,这个系统非常的稳定和强健,但是个别的操作,例如安装意外中断,使用了冲突的包来源,这个简单的说,就是不同的人打得包,往往也有不同,依赖关系不一样。

解决方案

1、根据上面的提示我们进入到/var/lib/rpm的目录下
error: cannot open Packages database in /var/lib/rpm

[root@master ~]# cd /var/lib/rpm

在这里插入图片描述

2、删除已经损坏的数据库重新构建就好了
        当然,重新建立了rpm库里的记录,不会安装和删除任何的包。所以放心使用吧。
在这里插入图片描述
        删除后重新构建

[root@master rpm]# rm -rf __db.001
[root@master rpm]# rpm --rebuilddb 

另外
yum clean all
会删除之前的缓存,例如已经进行到一半的更新,临时文件都会被去掉,只好从头来过了。

扩展

问题

ERROR:无法为立即文档创建临时文件: 设备上没有空间

故障发生原因
        测试环境,之前用该机器做过docker-compose,后来有需要用到该机器上的docker环境,需要将旧的docker容器全部删除,由于之前启动是使用docker-compose启动的,正常手段也应该使用该工具关掉容器。但是我用的是docker rm --force 命令,可能不知道系统哪根筋不对了吧
顺便我这里跟大家扩展下,这里是因为我重新构建数据时出现这个问题
在这里插入图片描述
之后我不管使用什么命令都是这个问题
在这里插入图片描述

解决方案

因为使用docker-compose的时候生成了很多的临时文件,所以我们清除/tmp目录下的文件即可

[root@master usr]# rm -rf /tmp/*
[root@master usr]# ls .
bin  etc  games  include  lib  lib64  libexec  local  sbin  share  src  tmp

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值