ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 低级误操作,Linux rpm自杀了!

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

原创 Linux操作系统 作者:chenoracle 时间:2024-06-08 10:38:17 0 删除 编辑

问题现象:

测试环境,Linux 通过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 <module>
    from dnf.cli import main
  File "/usr/lib/python3.7/site-packages/dnf/__init__.py", line 30, in <module>

尝试直接把其他目录下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》


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29785807/viewspace-3018192/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE、OCMU 用户组成员、Oracle 11g OCM、微信公众号"IT小Chen"

注册时间:2014-08-05

  • 博文量
    853
  • 访问量
    2727167