目录

问题现象

解决方案分析

解决方案

善后

FAQ


问题现象

今天开发同事说xx服务器(CentOS7.9)无法通过ssh登录了,尝试访问报错如下:

ssh_exchange_identification: read: Connection reset by peer

于是,直接访问虚机管理平台通过console访问。发现lib库被污染了,不只是无法远程访问sshd,连scp、rpm、yum等命令也无法使用。

开发同事也不晓得自己搞了啥,查找历史命令发现:rpm -ivh ./*.rpm --nodeps --force,应该是强制安装了一些rpm导致的。

解决方案分析

1、了解到是强制安装某些rpm导致lib库被污染,强制卸载掉也OK,但是rpm命令无法使用。

2、找一台同版本操作系统的服务器,将libnssutil3.so拷贝到问题机的/lib64下,但是scp无法使用,同时有无法远程访问到该机,且rpm、yum也不能使用,简直成了孤岛。

解决方案

挂载ISO,进入到“救援模式”:

1、cd /mnt/sysimage

2、cp -a usr/lib64{,.bak}       #--- /lib64是/usr/lib64的软链接

3、cp /lib64/*.so usr/lib64

4、chroot /mnt/sysimage     #--- 切到系统中验证是否问题得到解决

5、执行rpm、yum等命令验证,如果还有报错,可能有部分非*.so的动态链接库文件未得到更新,例如:执行yum时报:libcurl.so.4: cannot open shared object file: No such file or directory,则执行cp /lib64/libcurl.so.4.3.0 usr/lib64/即可

6、重启系统,然后再次登录成功。

善后

7、为了以绝后患,此时可以执行yum upgrade更新一下系统,极可能会报“多版本冲突”问题:(原因就是上面所说,强制安装了一些lib库的包,现在通过手动更新lib库,部分系统命令不报错了而已,不保证其他命令不报错,所以还是要卸载掉这些包

Error:  Multilib version problems found. This often means that the root
       cause is something else and multilib version checking is just
       pointing out that there is a problem. Eg.:

……

Protected multilib versions: systemd-libs-219-78.el7_9.7.i686 != systemd-libs-219-78.el7_9.5.x86_64
Error: Protected multilib versions: expat-2.1.0-15.el7_9.i686 != expat-2.1.0-14.el7_9.x86_64
Error: Protected multilib versions: expat-2.1.0-15.el7_9.i686 != expat-2.1.0-12.el7.x86_64
Error: Protected multilib versions: xz-libs-5.2.2-2.el7_9.i686 != xz-libs-5.2.2-1.el7.x86_64
Error: Protected multilib versions: nss-softokn-freebl-3.79.0-4.el7_9.i686 != nss-softokn-freebl-3.67.0-3.el7_9.x86_64
Error: Protected multilib versions: nss-softokn-freebl-3.79.0-4.el7_9.i686 != nss-softokn-freebl-3.53.1-6.el7_9.x86_64

卸载命令(最好用yum):yum erase systemd-libs.i686 expat.i686 xz-libs.i686 nss-softokn-freebl.i686

FAQ

在使用yum更新期间导致yum进程异常退出了,报:There are unfinished transactions remaining. You might consider running yum-complete-transaction, or "yum-complete-transaction --cleanup-only" and "yum history redo last", first to finish them. If those don't work you'll have to try removing/installing packages by hand (maybe package-cleanup can help).
The program yum-complete-transaction is found in the yum-utils package.

解决:

根据提示,执行命令:yum-complete-transaction或者yum-complete-transaction --cleanup-only,yum-complete-transaction来自于yum-utils package,如果没有安装,需要执行yum -y install yum-utils进行安装。

【系统救援】/lib64/libnssutil3.so: version `NSSUTIL_3.59‘ not found (required by /lib64/libnss3.so)相关推荐

  1. 解决 /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /lib64/libstdc++.so.6)

    背景信息: https://github.com/tensorflow/tfx/tree/master/examples/chicago_taxi 在执行上述tensorflow项目时报错,缺少GLI ...

  2. 解决 “/lib64/libc.so.6: version `GLIBC_2.18‘ not found (required by /lib64/libstdc++.so.6)“

    https://blog.csdn.net/wiborgite/article/details/87707938

  3. Linux服务器上的mongodb:/lib64/libc.so.6: version `GLIBC_2.14‘ not found (required by /app/hems/mong)

    在使用mongoimport时,出现/lib64/libc.so.6: version `GLIBC_2.14' not found (required by /app/hems/mong). 原来是 ...

  4. 嵌入式linux开发,/lib/libc.so.6: version `GLIBC_2.17‘ not found (required by /.../lib/libpaho-mqtt3a.so.1)

    一.问题描述. 嵌入式linux开发,使用高版本交叉编译工具,编译应用程序,在arm板中运行提示:/lib/libc.so.6: version `GLIBC_2.17' not found (req ...

  5. 编译opencv出现Could NOT find PythonLibs: Found unsuitable version “3.6.9“, but required is exact version

    -- Could NOT find PythonLibs: Found unsuitable version "3.6.9", but required is exact vers ...

  6. linux ata4 serror,linux系统救援模式解决开机引导失败问题

    问题:linux开机后进入grub命令行且grub命令行输入命令报错 推测:因之前系统装好以后改变过分区,而导致不能读取到grub主开机引导程序 在解决这个问题之前我们先来了解linux开机启动过程. ...

  7. Android Studio调用系统的代码中Build.VERSION.SDK_INT >= Build.VERSION_CODES.xxx

    常用来判断sdk版本如下 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //包含新的api的代码块} else { //包含旧的ap ...

  8. ubuntu16.04 源码安装gazebo8.2时显示SDF version >=5.0.0. Required for reading and writing SDF files 解决方法

    前段时间想学习一下gazebo的使用方式,但发现自带的gazebo7好像没有自带的plugin文件,所以想通过源码安装解决上述问题,但按照官方教程安装时,遇到了一下问题: 为了解决上述问题,需要更新s ...

  9. /libgomp.so.1: version `GOMP_4.0' not found (required by

    问题: 步骤一:strings /home/gaoning/anaconda2/envs/pytorch3/lib/libstdc++.so.6 | grep CXXABI #查看gcc的...有没有 ...

最新文章

  1. 7 Papers Radios | 6年前的ResNet重回巅峰;AI辩手登上Nature封面
  2. HDU 3790 最短路径问题
  3. vs2010如何安装qt插件
  4. picACG本地缓存目录_手机上本地存储的哪些文件、文件夹不能删?
  5. 开发怼产品,天经地义?大惊小怪?
  6. 生信宝典,生物信息学习资源
  7. 深度学习《GAN模型学习》
  8. Hdu 1496 Equations
  9. 并发编程---填充缓存行消除伪共享
  10. android wps页面设置背景图片,如何给手机版WPS的文档设置图片背景
  11. Oracle 定时任务详解(dbms_scheduler)
  12. 如何测试工业以太网线缆(利用FLUKE DSX-8000)?
  13. 杀戮间Cache文件夹整理
  14. JavaScript实现移动端跟手轮播图
  15. 沙盒和App Group
  16. TokenGazer评级丨TRON:BTT众筹谋求熊市破局,生态繁荣但数据受到质疑
  17. 根据Magic Number(幻数)判断文件类型
  18. mysql 重量 什么类型_航空货物运输中的计费重量,指货物毛重与体积重量中的高者。...
  19. Android 仿QQ 聊天消息拖拽效果
  20. 十个富有特色的猎奇网站

热门文章

  1. java中级程序员面试题_中级Java程序员常见面试题汇总
  2. Revit 二次开发 未能加载文件或程序集“Microsoft.Xaml.Behaviors”或它的某一个依赖项
  3. RTC2018现场速递:实时互动在线上创造了一个新世界
  4. PASCAL语言的基本知识
  5. R语言中seq函数的用法
  6. c语言表达式的类型,C语言_类型、运算符与表达式
  7. 学以致用——Java源码——使用随机几何图形制作屏保程序(Screen Saver with Shapes Using the Java 2D API)
  8. 关于三菱GXWORK安装失败或者安装向导被中断的解决办法
  9. 利用路由策略解决路由引入中产生的路由环路和次优路径问题
  10. Python中的静态类变量和方法