暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

低级误操作,Linux rpm自杀了!

原创 陈举超 2024-06-08
245

问题现象:

测试环境,Linux Kylin v10通过rpm -ivh 安装软件时提示如下错误:

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

问题分析:

刚才rpm还能用,为什么现在用不了了,之前只是卸载了mariadb-connector-xxx包,为什么rpm命令没了?

问题原因:

仔细看下刚才执行的命令,原来发生了一个低级误操作,rpm把自己卸载了!
打算执行的命令:

root@CJC-DB-01:/soft/mysql#rpm -e mariadb-connector-c-3.0.6-8.p01.ky10.x86_64 --nodeps

实际执行的命令:
当手动执行 rpm -e 后发现包名太长了,还是复制吧,结果不小心又重复复制了一次rpm -e命令,最终执行了如下操作:

root@CJC-DB-01:/soft/mysql#rpm -e rpm -e mariadb-connector-c-3.0.6-8.p01.ky10.x86_64 --nodeps

最终实际执行的是 rpm -e rpm 命令。

解决方案:

找到rpm命令对应的包名,然后重新安装对应的包:

[root@cjc-db-01 soft]# yum provides "*/rpm" > 0608.log`  

例如:rpm-4.11.3-32.el7.x86_64

结果发现yum命令依赖rpmrc,也被卸载了,无法正常使用yum命令。

root@CJC-DB-01:/soft/mysql#yum list  
error: Unable to open /usr/lib/rpm/rpmrc for reading: No such file or directory.  
Traceback (most recent call last):  
File "/bin/yum", line 57, in  
from dnf.cli import main  
File "/usr/lib/python3.7/site-packages/dnf/\_\_init\_\_.py", line 30, in  

尝试直接把其他目录下rpm文件拷过来:
拷贝其他机器的rpm文件

root@CJC-DB-02:/bin#scp -P 22 rpm\* root@192.168.0.101:/soft/tmp  
  
root@CJC-DB-01:/soft/tmp#ls -lrth  
total 296K  
\-rwxr-x--- 1 root root 23K May 31 16:23 rpm  
\-rwxr-x--- 1 root root 19K May 31 16:23 rpm2archive  
\-rwxr-x--- 1 root root 15K May 31 16:23 rpm2cpio  
\-rwxr-x--- 1 root root 33K May 31 16:23 rpmbuild  
\-rwxr-x--- 1 root root 19K May 31 16:23 rpmdb  
\-rwxr-x--- 1 root root 19K May 31 16:23 rpmdb2solv  
\-rwxr-x--- 1 root root 15K May 31 16:23 rpmdumpheader  
\-rwxr-x--- 1 root root 15K May 31 16:23 rpmmd2solv  
\-rwxr-x--- 1 root root 19K May 31 16:23 rpmkeys  
\-rwxr-x--- 1 root root 19K May 31 16:23 rpms2solv  
\-rwxr-x--- 1 root root 23K May 31 16:23 rpmquery  
\-rwxr-x--- 1 root root 19K May 31 16:23 rpmsign  
\-rwxr-x--- 1 root root 23K May 31 16:23 rpmverify  
\-rwxr-x--- 1 root root 19K May 31 16:23 rpmspec  

将文件拷贝到/bin目录下:同名的文件跳过,不覆盖

root@CJC-DB-01:/soft/tmp# cp -r \* /bin/  

还是不行

root@CJC-DB-01:/soft/tmp#rpm -qa|grep mysql  
error: Unable to open /usr/lib/rpm/rpmrc for reading: No such file or directory.  

根据报错提示,继续拷贝/usr/lib/rpm/目录下所有文件

root@CJC-DB-02:/root#scp -P 22 /usr/lib/rpm/\* root@192.168.0.101:/soft/tmp

将文件拷贝到/usr/lib/rpm/目录下:同名的文件跳过,不覆盖

root@CJC-DB-01:/soft/tmp# cp -r \* /usr/lib/rpm/  

可以了,rpm和yum命令恢复正常

root@CJC-DB-01:/soft/tmp#rpm -qa|grep mysql  
python2-mysqlclient-1.3.12-7.ky10.x86\_64  
qt5-qtbase-mysql-5.11.1-13.p01.ky10.x86\_64  

**注意: **
非常规修复方式,仅供参考,生产环境请勿使用!

###chenjuchao 20240608###

欢迎关注我的公众号《IT小Chen》

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论