您当前的位置: 首页 > 服务器教程 > Linux教程 > 修复rpm命令(不小心删了rpm命令)方法

修复rpm命令(不小心删了rpm命令)方法

作者:xiaoxiao 来源:未知 发布时间: 2014-01-09 15:46 点击:
如果用rpm -e --nodeps rpm 删除了rpm命令可以用以下方法修复 rpm相关文件下载:1./bin/rpm:binrpm.zip 2./usr/lib/下的so文件:Linux/usr-lib.rar 3./usr/lib/rpm文件夹:backusrlibrpm.zip 一、把binrpm.zip下的文件解压到/bin目录下,linux终端下输入rpm命令,出现

修复rpm命令(不小心删了rpm命令)方法

  如果用rpm -e --nodeps rpm 删除了rpm命令可以用以下方法修复
  
  rpm相关文件下载:1./bin/rpm:binrpm.zip      2./usr/lib/下的so文件:Linux/usr-lib.rar    3./usr/lib/rpm文件夹:backusrlibrpm.zip
  
  
  
  一、把binrpm.zip下的文件解压到/bin目录下,linux终端下输入rpm命令,出现以下情况为存在此命令。
  
  [root@localhost home]# rpm
  RPM version 4.2
  Copyright (C) 1998-2002 - Red Hat, Inc.
  This program may be freely redistributed under the terms of the GNU GPL
  
  Usage: rpm [-aKfgpqV] [-aKfgpqVcdils] [-aKfgpqVcdilsaKfgpqV] [-aKfgpqVcdilsaKfgpqV] [-aKfgpqVcdilsaKfgpqVK] [-aKfgpqVcdilsaKfgpqVK] [-aKfgpqVcdilsaKfgpqVKi] [-aKfgpqVcdilsaKfgpqVKiv] [-aKfgpqVcdilsaKfgpqVKiv] [-aKfgpqVcdilsaKfgpqVKiv?] [-a|--all] [-f|--file] [-g|--group]
          [-p|--package] [--specfile] [--whatrequires] [--whatprovides]
          [-c|--configfiles] [-d|--docfiles] [--dump] [-l|--list]
          [--queryformat=QUERYFORMAT] [-s|--state] [--nomd5] [--nofiles]
          [--nodeps] [--noscript] [--addsign] [-K|--checksig] [--import]
          [--resign] [--nodigest] [--nosignature] [--initdb] [--rebuilddb]
          [--aid] [--allfiles] [--allmatches] [--badreloc]
          [-e|--erase <package>+] [--excludedocs] [--excludepath=<path>]
          [--force] [-F|--freshen <packagefile>+] [-h|--hash] [--ignorearch]
          [--ignoreos] [--ignoresize] [-i|--install] [--justdb] [--nodeps]
          [--nomd5] [--noorder] [--nosuggest] [--noscripts] [--notriggers]
          [--oldpackage] [--percent] [--prefix=<dir>] [--relocate=<old>=<new>]
          [--repackage] [--replacefiles] [--replacepkgs] [--test]
          [-U|--upgrade <packagefile>+] [-D|--define 'MACRO EXPR']
          [-E|--eval 'EXPR'] [--macros=<FILE:...>] [--nodigest] [--nosignature]
          [--rcfile=<FILE:...>] [-r|--root ROOT] [--querytags] [--showrc]
          [--quiet] [-v|--verbose] [--version] [-?|--help] [--usage]
          [--scripts] [--setperms] [--setugids] [--conflicts] [--obsoletes]
          [--provides] [--requires] [--info] [--changelog] [--triggers]
          [--last] [--filesbypkg] [--fileclass] [--filecolor] [--fileprovide]
          [--filerequire] [--redhatprovides] [--redhatrequires]
          [--buildpolicy=<policy>] [--with=<option>] [--without=<option>]
  [root@localhost home]#
  
  如果出现以下类似错误:需要进行第二步骤
  
  rpm: error while loading shared libraries: librpm-4.4.so: cannot open
  
  shared object file: No such file or directory
  
  二、把usr-lib.rar解压到./usr/lib/下,
  
  使用[root@localhost home]#rpm -qa,检查某个rpm是否安装,如果出现
  
  error: cannot open Packages database in /var/lib/rpm
  
  no packages
  
  使用[root@localhost home]#rpm --rebuilddb,修复rpm数据库(参考本文最后部分) ,如果出现
  
  error: unrecognized db option: “db3″ ignored.
  
  error: cannot open Packages index
  
  出现以上情况,说明文件没有copy完,进行第三步骤
  
  三、把backusrlibrpm.zip解压到./usr/lib/下,并确保rpmpopt-4.1,rpmi,rpmv等文件的存在。
  
  再次运行rpm安装文件时报错:
  
  rpmdb: unable to join the environment  
  error: db4 error(11) from dbenv->open: Resource temporarily unavailable  
  error: cannot open Packages index using db3 - Resource temporarily unavailable (11)  
  error: cannot open Packages database in /var/lib/rpm  
  no packages
  
  解决方法一:是执行“export LD_ASSUME_KERNEL =2.2.25”或“export LD_ASSUME_KERNEL =2.2.25”命令,也可以将其写入/etc/bashrc。
  
  解决方法二:是执行“export LD_ASSUME_KERNEL =2.2.25”或“export LD_ASSUME_KERNEL =2.2.25”命令,升级rpm到rpm-4.2-1.i386.rpm
  
  解决方法三:是执行“export LD_ASSUME_KERNEL=2.2.5”
  
  
  
  ////////////////////////////////////////////////////////////////////////////////////////
  
  修复rpm数据库                                      
  有的时候,我们的rpm的数据库会因为某些原因损坏,这样当你执行rpm的相关命令的时候就会报类似下面的错误:
  rpmdb: fatal region error detected; run recoveryerror: db4 error(-30982) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recoveryerror: cannot open Packages index
  这样的后果是你将不能使用rpm来添加删除,更新查询你系统的RPM软件包了,其实只要按照下面的步骤做就能恢复你的RPM数据库而不必重新安装系统
  # cd /var/lib# mv rpm rpm.old# mkdir rpm# rpmdb --initdb# cp rpm.old/Packages rpm# rpmdb --rebuilddb
  就能了
  以上是针对redhat8 和redhat9的做法如果是以前的版本或其他版本的linux
  请按照下面的步骤进行
  # cd /var/lib# mv rpm rpm.old# mkdir rpm# rpm --initdb# cp rpm.old/Packages rpm# rpm --rebuilddb
  
  
  另一篇
  Repair RPM database
  当进行包安装、升级、卸载等操作时,可能损坏RPM DB,这时需要通过--rebuild参数来修复RPM DB,但有时会碰到这样的问题:
  [root@tiv125 lib]# rpm -v --rebuilddb
  rpmdb: fatal region error detected; run recovery
  error: db4 error(-30982) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery
  error: cannot open Packages index
  这时需要先手动删除/var/lib/rpm目录下的 __db.* 文件,比如 __db.001, __db.002, etc.
  然后再运行 rpm -v --rebuilddb 即可。

分享到:
本文"修复rpm命令(不小心删了rpm命令)方法"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4