问题现象:
测试环境,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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




