今天在搭建mysql的集群服务时,安装mysql集群服务前,先卸载原来mysql的软件包,不小心将rpm的命令也给卸载掉了,这下惨了,什么也做不了了。在google了翻了好多个页面,甚至官网也看了,没能解决我的问题,根据本人多年linux的经验以及linux系统的rpm软件包安装特点的敏感,本人想出了以下的方法,请注意:独创!为做集群,这里用到了两台机器,下面是拓扑图:

xiaolyu77(192.168.31.77rpm命令被卸载的机器)   -----------> 参照   xiaolyu76(192.168.31.76 正常机器) 。

1. 问题出现:

[root@xiaolyu77 ~]# rpm -e --nodeps rpm -e mysql-libs-5.1.73-7.el6.x86_64

[root@xiaolyu77 ~]# rpm -ivh MySQL-Cluster-server-gpl-7.3.7-1.el6.x86_64.rpm

-bash: /bin/rpm: No such file or directory

就是一不小心将rpm的命令用rpm强制给卸载了。可以看到已经不存在rpm命令了。

2. 检查rpm命令安装在哪里:

1.故障机器查看rpm命令

[root@xiaolyu77 ~]# whereis rpm

rpm: /etc/rpm /usr/lib/rpm

2. 正常机器查看rpm命令

[root@xiaolyu76 ~]# whereis rpm

rpm: /bin/rpm /etc/rpm /usr/lib/rpm /usr/share/man/man8/rpm.8.gz

[root@xiaolyu76 ~]#

3. 解决方案

从2.中可以看到77机器上rpm命令被卸载的,连man手册也没有了,bin下面更是没有。

思路:想到编译安装的软件的卸载方法是直接将安装路径下的文件直接删掉即可,那么我们可不可以缺什么补什么呢?显然可以啊。反过来不是一样么。

1. 补全whereis缺少的文件

[root@xiaolyu76 ~]# scp /bin/rpm  root@xiaolyu77:/bin/

[root@xiaolyu76 ~]# scp /usr/share/man/man8/rpm.8.gz  root@xiaolyu77:/usr/share/man/man8/

2. 补全安装目录下缺少的文件

通过whereis命令我们看到/ur/lib/rpm这个文件或者文件夹,实际上这个就是rpm命令的安装路径。现在比较两台机器下该目录的文件是否一致:

正常机器/usr/lib/rpm目录下的文件情况:

77机器rpm被卸载的机器:

显然通过对比发现有一些文件77机器上是没有的,尤其是9个软连接文件:

1.首先在77机器上创建这些软连接文件

[root@xiaolyu77 rpm]# ln -s ../../bin/db_deadlock rpmdb_deadlock

[root@xiaolyu77 rpm]# ln -s ../../bin/db_archive rpmdb_archive

[root@xiaolyu77 rpm]# ln -s ../../bin/db_load rpmdb_load

[root@xiaolyu77 rpm]# ln -s ../../bin/db_dump rpmdb_dump

[root@xiaolyu77 rpm]# ln -s ../../bin/db_upgrade rpmdb_upgrade

[root@xiaolyu77 rpm]# ln -s ../../bin/db_stat rpmdb_stat

[root@xiaolyu77 rpm]# ln -s ../../bin/db_recover rpmdb_recover

[root@xiaolyu77 rpm]# ln -s ../../bin/db_printlog rpmdb_printlog

[root@xiaolyu77 rpm]# ln -s ../../bin/db_verify rpmdb_verify

验证一下:

[root@xiaolyu77 rpm]# rpm

2.将rpmrc文件从76环境复制过来:

[root@xiaolyu76 rpm]# scp rpmrc  root@xiaolyu77:/usr/lib/rpm/

再次检验:发现貌似成功了:

[root@xiaolyu77 rpm]# rpm

[root@xiaolyu77 ~]# rpm -qa

error: no dbpath has been set

error: cannot open Packages database in /%{_dbpath}

error: no dbpath has been set

error: cannot open Packages database in /%{_dbpath}

3.出现这个问题:我们可以将macros 复制过去:

[root@xiaolyu76 rpm]# scp  macros  root@xiaolyu77:/usr/lib/rpm/

4. 执行一下updatedb命令

[root@xiaolyu77 ~]# updatedb

5. reboot重启一下:ok!来检验一下:

[root@xiaolyu77 rpm]# rpm -qa | grep rpm

完美的解决了问题,是为记录一下!

linux怎么将卸载的恢复,linux中不小心将rpm命令卸载了,怎么恢复?相关推荐

  1. Linux系统中软件管理(rpm命令 本地软件仓库的搭建 dnf软件管理命令 第三方软件的搭建,yum命令)

    一.rpm命令 1.Linux中的软件包类型 [1]DEB 适合UBlinux DBlinux [2]RPM(安装包:无需解压,可直接安装) 适合red had centOS fc [3]ba2|ga ...

  2. Linux使用rpm命令卸载软件

    window上面要卸载一个软件很容易,在系统软件管理里面或者通过第三应用工具,比如360软件管理.如果是Linux需要卸载一个软件应该怎么样操作?? rpm -q -a #查询所有已安装的软件 -q ...

  3. vba调用linux shell,调用命令提示符并通过VBA中的Shell Exec执行命令

    我试图在VBA Excel中使用Shell脚本在命令提示符上执行命令.当我在命令提示符下执行此命令时,它通过打印一个数字作为输出.但是当我在脚本中调用相同的命令时,它不会在消息框中显示此数字.调用命令 ...

  4. Linux中使用rpm命令卸载软件

    1.先使用rpm -qa | grep 软件包名称 例如卸载mysql: rpm -qa | grep mysql 2.使用rpm -e --nodeps 文件包名称 rpm -e --nodeps ...

  5. oracle导入del数据文件,pl/sql,Oracle数据库中,不小心delete数据并递交后如何恢复被删数据...

    用pl/sql developer导出表的数据时有三种方式:Oracle Export,Sql Insert,pl/sql developer 区别 导出数据到excel文件 excel数据导入到数据 ...

  6. linux用卸载软件管理,Linux下软件的安装卸载管理

    一.Linux应用程序组成 1. 普通执行程序文件,保存在"/usr/bin"目录中 2. 服务器执行程序文件和管理程序文件,保存在"/usr/sbin"目录中 ...

  7. Linux中命令rpm,Linux中rpm命令起什么作用呢?

    摘要: 下文讲述Linux中rpm的功能说明,如下所示: rpm(Red-Hat Package Manager 英文的缩写 ) rpm命令功能: 用于对Linux下软件包进行管理操作, 如: 安装. ...

  8. linux强制卸载移动硬盘,用umount命令卸载移动硬盘有几种方式

    linux mount 和umount 命令 使用Umount -A提示device busy 使用mount 提示写保护 只能已只读方式挂(1) umount提示说device busy是因为当前有 ...

  9. linux系统atom安装教程,Ubuntu/Linux Mint上安装Atom文本编辑器

    Atom是一款由Github开发的开源文本编辑器,虽然目前该软件依然在Beta阶段,但我们依然可以在你的Ubuntu/Linux Mint上使用它. 据Atom官方博客介绍,与Atom类似的编辑器Su ...

最新文章

  1. cdh 安装_0623-6.2.0-如何在CDH中安装CFM
  2. 计算机光盘工作原理,CD-ROM的工作原理
  3. wannalfy 挑战赛8 F 白云的树(树形dp)
  4. java socket 线程池_程序员:java使用线程池和TCP实现简单多轮聊天系统
  5. python qt信号在qml 的使用_QML使用Python的函数过程解析
  6. linux安装 gcc 7.2.0,centos7 安装 gcc-6.2.0
  7. Java中的list---ArrayList与LinkedList
  8. “站长也疯狂,开车盛宴”——如何选择运维产品
  9. Android 常用炫酷控件(开源项目)git地址汇总
  10. 【信号检测】基于matlab双稳随机共振微弱信号检测【含Matlab源码 1701期】
  11. CCF中学生计算机程序设计入门篇练习2.4.2(NOI 1002 三角形) pascal
  12. 李清照最经典的10首诗词
  13. 《程序员》12月精彩内容:双11技术决战
  14. PlantUML 之时序图
  15. 2021数据分析师薪资大PK
  16. CMD/DOS学习笔记
  17. DNS篇之DNS协议详解
  18. 5800日常操作使用小技巧
  19. java车辆管理系统开发源码_JSP写的车辆管理系统 - WEB源码|JSP源码/Java|源代码 - 源码中国...
  20. 基恩士plc-EtherCAT三十一轴,控制案例程序

热门文章

  1. 培训管理与人才开发 考题答案
  2. 语音翻译软件测试面试,软件测试工程师面试英文自我介绍
  3. 【2022考研最后40天】要注意这4个时间节点和这5件事情
  4. 无需公网IP,在外远程访问威联通QNAP|NAS|【内网穿透】
  5. 局部保留投影学习总结(LPP)
  6. python表情包斗图_Python爬取 斗图表情,让你成为斗图大佬
  7. 第4章第7节nbsp;二进制信号量(一)
  8. 借宝地一用,望多多包涵!
  9. python 推箱子实验开发报告_推箱子实验报告.doc
  10. 3D模型展示打破平面展示局限,让商品“活”起来