xiaolyu77(192.168.31.77rpm命令被卸载的机器) -----------> 参照 xiaolyu76(192.168.31.76 正常机器) 。
[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命令了。
[root@xiaolyu77 ~]# whereis rpm
rpm: /etc/rpm /usr/lib/rpm
[root@xiaolyu76 ~]# whereis rpm
rpm: /bin/rpm /etc/rpm /usr/lib/rpm /usr/share/man/man8/rpm.8.gz
[root@xiaolyu76 ~]#
从2.中可以看到77机器上rpm命令被卸载的,连man手册也没有了,bin下面更是没有。
思路:想到编译安装的软件的卸载方法是直接将安装路径下的文件直接删掉即可,那么我们可不可以缺什么补什么呢?显然可以啊。反过来不是一样么。
[root@xiaolyu76 ~]# scp /bin/rpm root@xiaolyu77:/bin/
[root@xiaolyu76 ~]# scp /usr/share/man/man8/rpm.8.gz root@xiaolyu77:/usr/share/man/man8/
通过whereis命令我们看到/ur/lib/rpm这个文件或者文件夹,实际上这个就是rpm命令的安装路径。现在比较两台机器下该目录的文件是否一致:
正常机器/usr/lib/rpm目录下的文件情况:
77机器rpm被卸载的机器:
显然通过对比发现有一些文件77机器上是没有的,尤其是9个软连接文件:
[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
[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}
[root@xiaolyu76 rpm]# scp macros root@xiaolyu77:/usr/lib/rpm/
[root@xiaolyu77 ~]# updatedb
[root@xiaolyu77 rpm]# rpm -qa | grep rpm
完美的解决了问题,是为记录一下!
本文为作者原创博客,转载请务必注明本博客地址:http://www.cnblogs.com/jasmine-Jobs/p/5986600.html
分类: linux
联系客服