今天在搭建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

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

本文为作者原创博客,转载请务必注明本博客地址:http://www.cnblogs.com/jasmine-Jobs/p/5986600.html

linux中不小心将rpm命令卸载了,怎么恢复?的更多相关文章

  1. linux中常用的60个命令及作用详解

    Linux 必学的 60 个命令 Linux 提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在 Linux 系统上工作离不开使用系统 ...

  2. linux中没有dos2UNIX或者UNIX2dos命令怎么解决办法

    linux中没有dos2UNIX或者UNIX2dos命令怎么解决办法 http://blog.csdn.net/w616589292/article/details/38274475 dos2unix ...

  3. Linux中系统检测工具top命令

    Linux中系统检测工具top命令 本文转自:https://www.cnblogs.com/zhoug2020/p/6336453.html 首先介绍top中一些字段的含义: VIRT:virtua ...

  4. Linux课程---12、linux中内存指令(top命令的作用是什么)

    Linux课程---12.linux中内存指令(top命令的作用是什么) 一.总结 一句话总结: top实时观察进程.内存和CPU情况 1.电脑出现反应慢情况,最先想到的是什么? 内存 2.linux ...

  5. linux中Jenkins启动/重启/停止命令

    简要记录一下Linux 中Jenkins启动/重启/停止命令 启动service jenkins start1重启service jenkins restart1停止service jenkins s ...

  6. 详解Linux中的cat文本输出命令用法

    作系统 > LINUX >   详解Linux中的cat文本输出命令用法 Linux命令手册   发布时间:2016-01-14 14:14:35   作者:张映    我要评论   这篇 ...

  7. Linux系列(31) - rpm命令管理之升级与卸载命令(3)

    升级命令 rpm -Uvh 包全名(要升级到的软件版本),如果没有安装这个软件的任何版本,这个命令可以代替rpm -ivh. rpm -Uvh 包全名 选项: - -U(upgrade):升级 卸载命 ...

  8. linux中安装软件,查看、卸载已安装软件方法

    各种主流Linux发行版都采用了某种形式的包管理系统(PMS)来控制软件和库的安装. 软件包存储在服务器上,可以利用本地Linux系统上的PMS工具通过互联网访问.这些服务器称为仓库. 由于Linux ...

  9. Linux中发布项目的一些命令笔记

    记一下,Linux中发布项目的一些难记的命令: .安装jdk a.检测是否安装了jdk 运行java -version b.若有需要将其卸载 c.查看安装那些jdk rpm -qa | grep ja ...

随机推荐

  1. MySQL 5.6.17 rpm 文件安装顺序

     Linux系统安装MySQL时,将MySQL-5.6.17-1.el6.x86_64.rpm-bundle.tar包打开,有7个rpm文件,如下: MySQL-client-5.6.17-1.el6 ...

  2. Xamarin.IOS之快速入门

    欢迎大家加入以下开源社区 Xamarin-Cn:https://github.com/Xamarin-Cn Mvvmcross-Cn:https://github.com/Mvvmcross-Cn  ...

  3. 第三波假期干货——webstrom工具栏图标

    在WS中使用工具栏上的快捷图标来配合工作可以有效提高效率,因为你不用去记住一些快捷键,只要点一下鼠标即可.不过在WS中有很多实用功能却是没有自带个性图标的,导致自定义工具栏后可能就是好几个一模一样的绿 ...

  4. 给Java程序猿们推荐一些值得一看的好书

    学习的最好途径就是看书 "学习的最好途径就是看书",这是我自己学习并且小有了一定的积累之后的第一体会.个人认为看书有两点好处: 1.能出版出来的书一定是经过反复的思考.雕琢和审核的 ...

  5. Windows Azure Service Bus Topics实现系统松散耦合

    前言 Windows Azure中的服务总线(Service Bus)提供了多种功能, 包括队列(Queue), 主题(Topic),中继(Relay),和通知中心(Notification Hub) ...

  6. 与webview打交道中踩过的那些坑

    随着HTML5被越来越多的用到web APP的开发当中,webview这一个神器便日渐凸显出重要地位.简要的说,webview能够在移动应用中开辟出一个窗口,在里面显示html页面,css以及js代码 ...

  7. PosePlus的第一次突破

    动作问题一定要解决 PosePlus是解决这个问题的库 (之前叫做CleanData.Ani,后来我想过,之前的设计各个库之间的依赖太重了) 现在把他们之间的依赖剥开.   PosePlus解决几个问 ...

  8. [异常解决] ubuntu上安装虚拟机遇到的问题(vmware坑了,virtual-box简单安装,在virtual-box中安装精简版win7)

    利用周末时间将整个电脑格式化,换成了ubuntu系统- 所谓:扫清屋子再请客! 但是有些软件只在win上有,于是还是考虑装个虚拟机来个——逐步过度策略,一点点地从win上转移到linux上 我的系统是 ...

  9. Java中main()的args的知识点浅谈

    我们先来了解下Java中main()方法的默认定义格式: public static void main(String[] args){ }1.main方法是程序执行的入口,除了args这个形参变量可 ...

  10. (数学)P、NP、NPC、NP hard问题

    概念定义: P问题:能在多项式时间内解决的问题: NP问题:(Nondeterministic Polynomial time Problem)不能在多项式时间内解决或不确定能不能在多项式时间内解决, ...