当前位置: 首页 > news >正文

Linux rpm和ssh损坏修复

背景介绍

我遇到的问题可能和你的不一样。但是如果遇到错误一样也可以按此方案尝试修复。
我是想在Linux上安装Oracle,因为必须在离线环境下安装。就在网上搜一篇文章linux离线安装oracle,然后安装教程走,进行到安装oracle依赖包的时候执行了下面的命令:

rpm -ivh ./* --nodeps --force

rpm -ivh ./* --nodeps --force 是一个用于在 Linux 系统上安装 RPM 包的命令。以下是每个选项的详细解释:

  • rpm:RPM 包管理器的命令。
  • -i:安装模式(install)。
  • -v:详细模式(verbose),显示安装过程中的详细信息。
  • -h:显示安装进度的哈希标记(hash),即安装过程中显示进度条。
  • ./*:当前目录下的所有文件(假设是 RPM 包)。
  • --nodeps:忽略依赖性检查,即使某些依赖包没有安装,也强制安装该 RPM 包。
  • --force:强制安装,即使系统中已存在相同的包或文件,也会覆盖安装。

总的来说,这个命令用于在当前目录下批量安装所有 RPM 包,并且忽略依赖关系和可能的冲突。

使用该命令时需要注意,因为 --nodeps--force 选项可能导致系统不稳定或依赖关系问题,所以应谨慎使用。

错误1

执行完上面的命令以后发现

  1. ssh连接不上了
    此时如果连接没有断开,千万不要断开,包括ssh和sftp的!。否则就得走另外的恢复模式了。
  2. rpm无法使用了
[root@k8s-node1 oracle11g_yilai]# rpm -qa | grep nss
rpm: /lib64/libnssutil3.so: version `NSSUTIL_3.82' not found (required by /lib64/libnss3.so)
rpm: /lib64/libnssutil3.so: version `NSSUTIL_3.59' not found (required by /lib64/libnss3.so)

这个错误rpm: /lib64/libnssutil3.so: version `NSSUTIL_3.59’ not found 会让人很蒙圈。网上有教程让复制一个libnssutil3.so进去。可能会出现下面的错误

错误2

执行rpm -qa命令

[root@k8s-node1]# rpm -qa
错误:Failed to initialize NSS library

Failed to initialize NSS library 错误出现了

问题分析

根本原因是在前面执行rpm -ivh ./* --nodeps --force命令的时候,没有查看要执行的离线依赖包里面有哪些包。如果你是个初学的小白或者linux并不是那么熟练,这个命令是个大坑!大坑!大坑!

后来查看离线依赖包里面发现了下面几个包:

nss-util-3.44.0-4.el7_7.x86_64.rpm
nss-softokn-freebl-3.44.0-8.el7_7.x86_64.rpm
nss-softokn-freebl-3.44.0-8.el7_7.i686.rpm
nspr-4.21.0-1.el7.x86_64.rpm

在执行上面的安装RPM包的命令的时候,本机的nss被覆盖了,会导致ssh相关 rpm相关命令失效。这种情况会出现在安装的nss包的版本比当前服务器的版本低的情况,如果一样是不会导致错误的。
比如当前的nss版本是nss-3.67.0-3.el7_9.x86_64,安装了一个nss-3.44.0-4.el7_7.x86_64.rpm,这种情况就会出现错误。

拯救方案

经过反复测试。在另外一台正常运行的服务器上把相关的包复制过来进行覆盖就可以恢复。
当然覆盖前要做一些备份。
在/usr/lib64下面有这个几个.so文件

.nss/libnssckbi.so
libnspr4.so
ilibnss3.so
libnssutil3.so
libsmime3.so
libssl3.so
libfreeblpriv3.so

可以挨个替换,然后验证是否已经解决问题。

复现步骤

1.上传依赖包
上传oracle11g_yilai到 /var/tmp下
2.自检
执行rpm -qa | grep nss,输出正常
我当前服务版本是nss-3.44.0-4.el7_7.x86_64
ssh连接正常
3.升级nss

sudo yum install nss-3.67.0-3.el7_9.x86_64

升级日志中可以看到升级了哪些包。
执行rpm -qa | grep nss,输出正常已升级到nss-3.90.0-2.el7_9.x86_64
3.RPM强制覆盖

cd /var/tmp/oracle11g_yilai
rpm -ivh ./* --nodeps --force

ssh 和 sftp窗口不要关闭,否则连不上了
4.自检

[root@k8s-node1 ]# rpm -qa | grep nss
rpm: /lib64/libnssutil3.so: version `NSSUTIL_3.82' not found (required by /lib64/libnss3.so)
rpm: /lib64/libnssutil3.so: version `NSSUTIL_3.59' not found (required by /lib64/libnss3.so)

ssh无法连接
6.复制libnss3.so到/usr/lib64
-必须复制原来3.4版本的libnss3.so。升级后的不会出现下面的错误

[root@k8s-node1 ]# rpm -qa | grep nss
错误:Failed to initialize NSS library

错误已经改变 Failed to initialize NSS library。
复制libnssutil3.so进去也行,每个机器可能版本不一样,表现不太一样。

7.从升级到nss3.90的服务器复制一下文件替换当前服务器的/uar/lib64下的.so文件
.nss/libnssckbi.so
libnspr4.so
ilibnss3.so
libnssutil3.so
libsmime3.so
libssl3.so

[root@k8s-node1 ]# ssh localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:tbgFq5/tRhkV/P6jLz9+olydPnQ3rYtCBNrQC/gL9GQ.
ECDSA key fingerprint is MD5:60:cf:f5:40:fb:bf:01:1b:ba:96:d4:9e:51:7a:80:19.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.

ssh恢复正常

8.rpm修复

替换libfreeblpriv3.so

[root@k8s-node1 ~]# rpm -qa | grep nss
openssh-clients-7.4p1-21.el7.x86_64
nss-util-3.90.0-1.el7_9.x86_64
nss-3.90.0-2.el7_9.x86_64
nss-util-3.44.0-4.el7_7.x86_64
openssl-libs-1.0.2k-19.el7.x86_64
nss-softokn-freebl-3.44.0-8.el7_7.i686
openssh-server-7.4p1-21.el7.x86_64
nss-softokn-freebl-3.90.0-6.el7_9.x86_64
nss-sysinit-3.90.0-2.el7_9.x86_64
nss-tools-3.90.0-2.el7_9.x86_64
nss-softokn-freebl-3.44.0-8.el7_7.x86_64
openssl-1.0.2k-19.el7.x86_64
nss-pem-1.0.3-7.el7.x86_64
jansson-2.10-1.el7.x86_64
nss-softokn-3.90.0-6.el7_9.x86_64
xmlsec1-openssl-1.2.20-7.el7_4.x86_64
openssh-7.4p1-21.el7.x86_64

相关文章:

Linux rpm和ssh损坏修复

背景介绍 我遇到的问题可能和你的不一样。但是如果遇到错误一样也可以按此方案尝试修复。 我是想在Linux上安装Oracle,因为必须在离线环境下安装。就在网上搜一篇文章linux离线安装oracle,然后安装教程走,进行到安装oracle依赖包的时候执行了…...

仕考网:公务员考试面试时间一般多长?

公务员考试主要分为笔试与面试两个阶段,其中面试是笔试通过的下一关,面试的具体安排通常由相关考试机构或招录单位负责发布并通知考生。 公务员面试的持续时间一般在30分钟至1小时之间,具体时长可能因地区和招录单位的不同而有所变化。常见的…...

C语言作业5(学生管理系统C语言)

成学生管理系统 1> 使用菜单完成 2> 有学生的信息录入功能:输入学生个数,并将学生的姓名、分数录入 3> 查看学生信息:输出所有学生姓名以及对应的分数 4> 求出学习最好的学生信息:求最大值 5> 按姓名将所有学…...

OS Copilot:新手测评体验

文章目录 前言一、OS Copilot(阿里云操作系统智能助手)简介二、测评体验总结OS Copilot 产品体验评测OS Copilot 产品功能反馈 前言 本文简单分享一下自己使用OS Copilot测评体验。 一、OS Copilot(阿里云操作系统智能助手)简介 …...

PS 2024【最新】中文白嫖版!,安装教程,图文步骤

文章目录 软件介绍软件下载安装步骤 软件介绍 Photoshop,简称“PS” Adobe Photoshop,简称“PS”,是由Adobe Systems开发和发行的图像处理软件。Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地…...

bind方法的使用

在JavaScript或TypeScript中,this.data.setEventListener(this.onAddEvent.bind(this)); 和 this.data.setEventListener(this.onAddEvent); 之间的主要区别在于this关键字的绑定方式。 不使用.bind(this) 当你直接传递函数引用 this.onAddEvent给 setEventListene…...

MySQL数据库基本操作-DDL和DML

1. DDL解释 DDL(Data Definition Language),数据定义语言,该语言部分包括以下内容: 对数据库的常用操作对表结构的常用操作修改表结构 2. 对数据库的常用操作 功能SQL查看所有的数据库show databases;查看有印象的数据库show d…...

iOS 应用内存超过多少会收到系统内存警告 ?

iOS 应用内存超过多少会收到系统内存警告 ? 在 iOS 应用中,系统内存警告的触发是由 iOS 操作系统动态决定的,并不是一个固定的阈值。系统会根据当前设备的可用内存、正在运行的其他应用程序的内存需求以及当前应用程序的内存占用情况来判断是…...

【分布式系统】Filebeat+Kafka+ELK 的服务部署

目录 一.实验准备 二.配置部署 Filebeat 三.配置Logstash 四.验证 一.实验准备 结合之前的博客中的实验 主机名ip地址主要软件es01192.168.80.101ElasticSearches02192.168.80.102ElasticSearches03192.168.80.103ElasticSearch、Kibananginx01192.168.80.104nginx、Logs…...

Qt Qwt 图表库详解及使用

文章目录 Qt Qwt 图表库详解及使用一、Qwt 概述二、安装 Qwt1. 下载和编译 Qwt2. 在项目中使用 Qwt三、Qwt 的基本使用1. 创建一个简单的折线图2. 添加图例和自定义样式四、Qwt 的交互功能1. 启用缩放和平移2. 启用数据点选择五、Qwt 的高级特性1. 实时数据更新2. 多轴绘图六、…...

基于B站视频评论的文本分析,采用包括文本聚类分析、LDA主题分析、网络语义分析

研究主题 本研究旨在通过对B站视频评论数据进行文本分析,揭示用户评论的主题、情感倾向和语义结构,助力商业决策。主要技术手段包括Python爬虫、LDA主题分析、聚类分析和语义网络分析。首先,利用Python爬虫采集大量评论数据并进行预处理。运…...

【Qt】xml Dom复制

1. 功能 将A.xml文件中的copyNode节点全部复制到B.xml中的testRoot节点。 2. 代码 #include <QDomDocument> #include <QFile> #include <QIODevice> #include <QtXml>void copyNodeXml() {// 源文件DOMQDomDocument ADoc;// 加载源文件QFile fileA(…...

MySQL联合索引最左匹配原则

MySQL中的联合索引(也叫组合索引)遵循最左匹配原则&#xff0c;即在创建联合索引时&#xff0c;查询条件必须从索引的最左边开始&#xff0c;否则索引不会被使用。在联合索引的情况下&#xff0c;数据是按照索引第一列排序&#xff0c;第一列数据相同时才会按照第二列排序。 例…...

2024最新最全面的软件测试自动化面试题(含答案)

1.如何把自动化测试在公司中实施并推广起来的&#xff1f; 选择长期的有稳定模块的项目 项目组调研选择自动化工具并开会演示demo案例&#xff0c;我们主要是演示selenium和robot framework两种。 搭建自动化测试框架&#xff0c;在项目中逐步开展自动化。 把该项目的自动化…...

Linux磁盘-MBRGPT

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 Linux磁盘涉及到的命令不是很多&#xff0c;但是在实际运维中的作用却很大&#xff0c;因为Linux系统及业务都会承载到硬盘上…...

kind kubernetes(k8s虚拟环境)使用本地docker的镜像

kubernetes中&#xff0c;虽然下载镜像使用docker&#xff0c;但是存储在docker image里的镜像是不能被k8s直接使用的&#xff0c;但是kind不同&#xff0c;可以使用下面的方法&#xff0c;让kind kubernetes环境使用docker image里的镜像。 kind – Quick Start 例如&#x…...

kafka发送消息流程

配置props.put(ProducerConfig.PARTITIONER_CLASS_CONFIG, RoundRobinPartitioner.class); public Map<String,Object> producerConfigs(){Map<String,Object> props new HashMap<>();props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,bootstrapServers…...

使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-敌人生成器(八)

文章目录 开发思路敌人生成器代码分析属性配置 使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击&#xff08;一&#xff09; 使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-激光组件&#xff08;二&#xff09; 使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-飞…...

Allegro中show elements不弹窗问题

今天allegro用的好好的&#xff0c;刚刚还可以正常使用show elements进行对象的详细信息查看的&#xff0c;突然就不好使了&#xff0c;具体表现为不弹窗。 找了好久找到一个类似问题的&#xff0c;具体的解决方法是&#xff1a; D:\Allegro\Cadence\SPB_Data\pcbenv在allegro的…...

【C++】继承最全解析(什么是继承?继承有什么用?)

目录 一、前言 二、什么是继承 ? &#x1f4a2;继承的概念&#x1f4a2; &#x1f4a2;继承的定义&#x1f4a2; &#x1f95d;定义格式 &#x1f347;继承权限 三、基类与派生类对象的赋值转换 四、继承的作用域 五、派生类中的默认成员函数 &#x1f4a2…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为&#xff1a;一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

Modbus RTU与Modbus TCP详解指南

目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...

阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)

cd /home 进入home盘 安装虚拟环境&#xff1a; 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境&#xff1a; virtualenv myenv 3、激活虚拟环境&#xff08;激活环境可以在当前环境下安装包&#xff09; source myenv/bin/activate 此时&#xff0c;终端…...

【实施指南】Android客户端HTTPS双向认证实施指南

&#x1f510; 一、所需准备材料 证书文件&#xff08;6类核心文件&#xff09; 类型 格式 作用 Android端要求 CA根证书 .crt/.pem 验证服务器/客户端证书合法性 需预置到Android信任库 服务器证书 .crt 服务器身份证明 客户端需持有以验证服务器 客户端证书 .crt 客户端身份…...