加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

LINUX学习:Linux中rpm命令误卸载了的恢复

发布时间:2020-12-13 17:36:24 所属栏目:Linux 来源:网络整理
导读:《LINUX学习:Linux中rpm命令误卸载了的恢复》要点: 本文介绍了LINUX学习:Linux中rpm命令误卸载了的恢复,希望对您有用。如果有疑问,可以联系我们。 今天在搭建MySQL集群服务时,安装MySQL集群服务前,先卸载原来MySQL的软件包,不小心将rpm的命令也给卸载掉

《LINUX学习:Linux中rpm命令误卸载了的恢复》要点:
本文介绍了LINUX学习:Linux中rpm命令误卸载了的恢复,希望对您有用。如果有疑问,可以联系我们。

今天在搭建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命令误卸载了的恢复》是否对您有启发,欢迎查看更多与《LINUX学习:Linux中rpm命令误卸载了的恢复》相关教程,学精学透。编程之家PHP学院为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读