当前位置: 首页 > 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…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...