dnf install openssl失败的原因和解决办法
网上有很多编译OpenSSL源码(3.x版本)为RPM包的文章,这些文章在安装RPM包时都是执行rpm -ivh openssl-xxx.rpm --nodeps --force
这个命令能在缺少依赖包的情况下能强行执行安装
其实根据Centos的文档,安装RPM包一般是执行yum install或dnf install。后者是Centos 9 stream的安装命令,是替换yum命令的。
以Centos 9上生成的OpenSSH 3.5的RPM包为例:生成了3个RPM包,分别是 :
openssl-3.5.0-2.el9.x86_64.rpmopenssl-libs-3.5.0-2.el9.x86_64.rpmopenssl-devel-3.5.0-2.el9.x86_64.rpm
执行安装的命令为 :
dnf install ./openssl-libs-3.5.0-2.el9.x86_64.rpm ./openssl-3.5.0-2.el9.x86_64.rpm
报错信息类似如下:
Problem 1: problem with installed package crypto-policies-20240828-2.git626aa59.el9.noarch- package crypto-policies-20240828-2.git626aa59.el9.noarch from @System conflicts with openssl-libs < 1:3.0.1-10 provided by openssl-libs-1:3.5.0-2.el9.x86_64 from @commandline- package crypto-policies-20240304-1.gitb1c706d.el9.noarch from baseos conflicts with openssl-libs < 1:3.0.1-10 provided by openssl-libs-1:3.5.0-2.el9.x86_64 from @commandline- package crypto-policies-20240815-1.gite217f03.el9.noarch from baseos conflicts with openssl-libs < 1:3.0.1-10 provided by openssl-libs-1:3.5.0-2.el9.x86_64 from @commandline- package crypto-policies-20240822-1.gitbaf3e06.el9.noarch from baseos conflicts with openssl-libs < 1:3.0.1-10 provided by openssl-libs-1:3.5.0-2.el9.x86_64 from @commandline- package crypto-policies-20240828-2.git626aa59.el9.noarch from baseos conflicts with openssl-libs < 1:3.0.1-10 provided by openssl-libs-1:3.5.0-2.el9.x86_64 from @commandline- package crypto-policies-20250128-1.git5269e22.el9.noarch from baseos conflicts with openssl-libs < 1:3.0.1-10 provided by openssl-libs-1:3.5.0-2.el9.x86_64 from @commandline- conflicting requestsProblem 2: problem with installed package crypto-policies-scripts-20240828-2.git626aa59.el9.noarch- package crypto-policies-scripts-20240828-2.git626aa59.el9.noarch from @System requires crypto-policies = 20240828-2.git626aa59.el9, but none of the providers can be installed- package crypto-policies-scripts-20240828-2.git626aa59.el9.noarch from baseos requires crypto-policies = 20240828-2.git626aa59.el9, but none of the providers can be installed- package crypto-policies-scripts-20240304-1.gitb1c706d.el9.noarch from baseos requires crypto-policies = 20240304-1.gitb1c706d.el9, but none of the providers can be installed- package crypto-policies-scripts-20240815-1.gite217f03.el9.noarch from baseos requires crypto-policies = 20240815-1.gite217f03.el9, but none of the providers can be installed- package crypto-policies-scripts-20240822-1.gitbaf3e06.el9.noarch from baseos requires crypto-policies = 20240822-1.gitbaf3e06.el9, but none of the providers can be installed- package crypto-policies-scripts-20250128-1.git5269e22.el9.noarch from baseos requires crypto-policies = 20250128-1.git5269e22.el9, but none of the providers can be installed- package crypto-policies-20240828-2.git626aa59.el9.noarch from @System conflicts with openssl-libs < 1:3.0.1-10 provided by openssl-libs-1:3.5.0-2.el9.x86_64 from @commandline- package crypto-policies-20240304-1.gitb1c706d.el9.noarch from baseos conflicts with openssl-libs < 1:3.0.1-10 provided by openssl-libs-1:3.5.0-2.el9.x86_64 from @commandline- package crypto-policies-20240815-1.gite217f03.el9.noarch from baseos conflicts with openssl-libs < 1:3.0.1-10 provided by openssl-libs-1:3.5.0-2.el9.x86_64 from @commandline- package crypto-policies-20240822-1.gitbaf3e06.el9.noarch from baseos conflicts with openssl-libs < 1:3.0.1-10 provided by openssl-libs-1:3.5.0-2.el9.x86_64 from @commandline- package crypto-policies-20240828-2.git626aa59.el9.noarch from baseos conflicts with openssl-libs < 1:3.0.1-10 provided by openssl-libs-1:3.5.0-2.el9.x86_64 from @commandline- package crypto-policies-20250128-1.git5269e22.el9.noarch from baseos conflicts with openssl-libs < 1:3.0.1-10 provided by openssl-libs-1:3.5.0-2.el9.x86_64 from @commandline- package openssl-1:3.5.0-2.el9.x86_64 from @commandline requires openssl-libs = 3.5.0-2.el9, but none of the providers can be installed- package openssl-1:3.5.0-2.el9.x86_64 from @commandline requires libcrypto.so.3(OPENSSL_3.3.0)(64bit), but none of the providers can be installed- package openssl-1:3.5.0-2.el9.x86_64 from @commandline requires libcrypto.so.3(OPENSSL_3.4.0)(64bit), but none of the providers can be installed- package openssl-1:3.5.0-2.el9.x86_64 from @commandline requires libcrypto.so.3(OPENSSL_3.5.0)(64bit), but none of the providers can be installed- package openssl-1:3.5.0-2.el9.x86_64 from @commandline requires libssl.so.3(OPENSSL_3.4.0)(64bit), but none of the providers can be installed- conflicting requests
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
上述报错的意思是crypto-policies-20240828-2.git626aa59.el9.noarch包与低于1:3.0.1-10版本的openssl-libs的包有冲突.这里的版本号1:3.0.1-10中的1:意思是EPOCH的值,3.0.1才是我们常说的版本号。
现在安装的是openssl-libs-3.5.0,即版本是3.5.0,是大于3.0.1的,按理应该不冲突才对,而实际上却发生冲突了。
我尝试重新编译和打包crypto-policies,目的就是修改对OpenSSL版本的限制。
第一次我设置为Conflicts: openssl < 1:2.9.1-10,即crypto-policies包对OpenSSL 2.9即以下版本有冲突,但测试发现限制条件没有生效
第二次我直接取消了对OpenSSL的版本限制,测试发现能成功使用dnf install命令安装OpenSSL.
下面是我分别安装crypto-policies和OpenSSL 3.5.0的输出
1.更新crypto-policies
dnf install ~/tool/crypto-policies/crypto-policies-scripts-20251215-1.git9a18988.el9.noarch.rpm \
~/tool/crypto-policies/crypto-policies-20251215-1.git9a18988.el9.noarch.rpm
输出如下 :
=============================================================================================================================================================================================Package Architecture Version Repository Size
=============================================================================================================================================================================================
Upgrading:crypto-policies noarch 20251215-1.git9a18988.el9 @commandline 55 kcrypto-policies-scripts noarch 20251215-1.git9a18988.el9 @commandline 84 kTransaction Summary
=============================================================================================================================================================================================
Upgrade 2 PackagesTotal size: 140 k
说明 :
- 使用的源码是
fedora-crypto-policies-rhel9.tar.gz,来自https://gitlab.com/redhat-crypto/fedora-crypto-policies/-/tree/rhel9?ref_type=heads的 rhel9 分支 - crypto-policies的版本号
20251215-1是随便设置的,目的是比原版本号高就可以了
2.安装Openssl 3.5.0
dnf install /root/tool/openssl/openssl-libs-3.5.0-2.el9.x86_64.rpm /root/tool/openssl/openssl-3.5.0-2.el9.x86_64.rpm
输出如下 :
=============================================================================================================================================================================================Package Architecture Version Repository Size
=============================================================================================================================================================================================
Upgrading:openssl x86_64 1:3.5.0-2.el9 @commandline 983 kopenssl-libs x86_64 1:3.5.0-2.el9 @commandline 4.2 M
Installing dependencies:perl-AutoLoader noarch 5.74-481.el9 baseos 21 kperl-B x86_64 1.80-481.el9 baseos 180 kperl-Carp noarch 1.50-460.el9 baseos 30 kperl-Class-Struct noarch 0.66-481.el9 baseos 22 kperl-Data-Dumper x86_64 2.174-462.el9 baseos 56 kperl-Digest noarch 1.19-4.el9 baseos 26 kperl-Digest-MD5 x86_64 2.58-4.el9 baseos 37 kperl-Encode x86_64 4:3.08-462.el9 baseos 1.7 Mperl-Errno x86_64 1.30-481.el9 baseos 14 kperl-Exporter noarch 5.74-461.el9 baseos 32 kperl-Fcntl x86_64 1.13-481.el9 baseos 20 kperl-File-Basename noarch 2.85-481.el9 baseos 17 kperl-File-Path noarch 2.18-4.el9 baseos 36 kperl-File-Temp noarch 1:0.231.100-4.el9 baseos 60 kperl-File-stat noarch 1.09-481.el9 baseos 17 kperl-FileHandle noarch 2.03-481.el9 baseos 15 kperl-Getopt-Long noarch 1:2.52-4.el9 baseos 61 kperl-Getopt-Std noarch 1.12-481.el9 baseos 15 kperl-HTTP-Tiny noarch 0.076-462.el9 baseos 54 kperl-IO x86_64 1.43-481.el9 baseos 88 kperl-IO-Socket-IP noarch 0.41-5.el9 baseos 43 kperl-IO-Socket-SSL noarch 2.073-2.el9 baseos 217 kperl-IPC-Open3 noarch 1.21-481.el9 baseos 22 kperl-MIME-Base64 x86_64 3.16-4.el9 baseos 31 kperl-Mozilla-CA noarch 20200520-6.el9 baseos 13 kperl-Net-SSLeay x86_64 1.94-1.el9 baseos 414 kperl-POSIX x86_64 1.94-481.el9 baseos 96 kperl-PathTools x86_64 3.78-461.el9 baseos 88 kperl-Pod-Escapes noarch 1:1.07-460.el9 baseos 21 kperl-Pod-Perldoc noarch 3.28.01-461.el9 baseos 87 kperl-Pod-Simple noarch 1:3.42-4.el9 baseos 225 kperl-Pod-Usage noarch 4:2.01-4.el9 baseos 41 kperl-Scalar-List-Utils x86_64 4:1.56-462.el9 baseos 71 kperl-SelectSaver noarch 1.02-481.el9 baseos 11 kperl-Socket x86_64 4:2.031-4.el9 baseos 56 kperl-Storable x86_64 1:3.21-460.el9 baseos 96 kperl-Symbol noarch 1.08-481.el9 baseos 14 kperl-Term-ANSIColor noarch 5.01-461.el9 baseos 49 kperl-Term-Cap noarch 1.17-460.el9 baseos 23 kperl-Text-ParseWords noarch 3.30-460.el9 baseos 17 kperl-Text-Tabs+Wrap noarch 2013.0523-460.el9 baseos 24 kperl-Time-Local noarch 2:1.300-7.el9 baseos 34 kperl-URI noarch 5.09-3.el9 baseos 121 kperl-WWW-Curl x86_64 4.17-29.el9 epel 62 kperl-base noarch 2.27-481.el9 baseos 16 kperl-constant noarch 1.33-461.el9 baseos 24 kperl-if noarch 0.60.800-481.el9 baseos 14 kperl-interpreter x86_64 4:5.32.1-481.el9 baseos 71 kperl-libnet noarch 3.13-4.el9 baseos 130 kperl-libs x86_64 4:5.32.1-481.el9 baseos 2.2 Mperl-mro x86_64 1.23-481.el9 baseos 28 kperl-overload noarch 1.31-481.el9 baseos 45 kperl-overloading noarch 0.02-481.el9 baseos 12 kperl-parent noarch 1:0.238-460.el9 baseos 15 kperl-podlators noarch 1:4.14-460.el9 baseos 114 kperl-subs noarch 1.03-481.el9 baseos 11 kperl-vars noarch 1.05-481.el9 baseos 13 k
Installing weak dependencies:perl-NDBM_File x86_64 1.15-481.el9 appstream 22 kTransaction Summary
=============================================================================================================================================================================================
Install 58 Packages
Upgrade 2 PackagesTotal size: 12 M
特别说明 :
- 考虑到
crypto-policies是整个系统的加密基础,因此不建议安装自己打包的RPM - 从安装OpenSSL的输出也可以知道在执行
rpm -ivh安装OpenSSL时,需要自行安装哪些依赖包 - 由于
OpenSSL也是系统的基础包之一,因此不建议在生产环境安装
附 : crypto-policies和OpenSSL的RPM包的下载地址 :
https://github.com/mosaicwang/myrpm/releases/tag/openssl-3.5.0相关文章:
dnf install openssl失败的原因和解决办法
网上有很多编译OpenSSL源码(3.x版本)为RPM包的文章,这些文章在安装RPM包时都是执行rpm -ivh openssl-xxx.rpm --nodeps --force 这个命令能在缺少依赖包的情况下能强行执行安装 其实根据Centos的文档,安装RPM包一般是执行yum install或dnf install。后者…...
Java 在人工智能领域的突围:从企业级架构到边缘计算的技术革新
一、Java AI 的底层逻辑:从语言特性到生态重构 在 Python 占据 AI 开发主导地位的当下,Java 正通过技术重构实现突围。作为拥有 30 年企业级开发经验的编程语言,Java 的核心优势在于强类型安全、内存管理能力和分布式系统支持,这…...
操作系统导论——第19章 分页:快速地址转换(TLB)
使用分页作为核心机制来实现虚拟内存,可能会带来较高的性能开销。使用分页,就要将内存地址空间切分成大量固定大小的单元(页),并且需要记录这些单元的地址映射信息。因为这些映射信息一般存储在物理内存中,…...
计算机网络:流量控制与可靠传输机制
目录 基本概念 流量控制:别噎着啦! 可靠传输:快递必达服务 传输差错:现实中的意外 滑动窗口 基本概念 换句话说:批量发货排队验收 停止-等待协议 SW(发1份等1份) 超时重传:…...
SaaS、Paas、IaaS、MaaS、BaaS五大云计算服务模式
科普版:通俗理解五大云计算服务模式 1. SaaS(软件即服务) 一句话解释:像“租用公寓”,直接使用现成的软件,无需操心维护。 案例:使用钉钉办公、在网页版WPS编辑文档。服务提供商负责软件更新和…...
计算机网络 - 三次握手相关问题
通过一些问题来讨论 TCP 协议中的三次握手机制 说一下三次握手的大致过程?为什么需要三次握手?2 次不可以吗?第三次握手,可以携带数据吗?第二次呢?三次握手连接阶段,最后一次ACK包丢失…...
通过使用 include 语句加载并执行一个CMake脚本来引入第三方库
通过使用 include 语句加载并执行一个CMake脚本来引入第三方库 当项目中使用到第三方库时,可以通过使用 include 语句来加载并执行一个CMake脚本,在引入的CMake脚本中进行第三方库的下载、构建和库查找路径的设置等操作,以这种方式简化项目中…...
架构生命周期(高软57)
系列文章目录 架构生命周期 文章目录 系列文章目录前言一、软件架构是什么?二、软件架构的内容三、软件设计阶段四、构件总结 前言 本节讲明架构设计的架构生命周期概念。 一、软件架构是什么? 二、软件架构的内容 三、软件设计阶段 四、构件 总结 就…...
JMeter使用
1.简介 1.1 打开方式 ①点击bat,打开 ②添加JMeter系统环境变量,输⼊命令jmeter即可启动JMeter⼯具 1.2 配置 简体中文 放大字体 1.3 使用 ①添加线程组 ②创建http请求 2. 组件 2.1 线程组 控制JMeter将⽤于执⾏测试的线程数,也可以把⼀个线程理解为⼀个测…...
Ant Design Vue 表格复杂数据合并单元格
Ant Design Vue 表格复杂数据合并单元格 官方合并效果 官方示例 表头只支持列合并,使用 column 里的 colSpan 进行设置。 表格支持行/列合并,使用 render 里的单元格属性 colSpan 或者 rowSpan 设值为 0 时,设置的表格不会渲染。 <temp…...
Fiddler为什么可以看到一次HTTP请求数据?
1、作为代理服务器 Fiddler作为代理服务器,拦截了设备与互联网服务器之间的所有HTTP和HTTPS流量。当客户端(如浏览器)发送请求时,请求先到达Fiddler,然后由Fiddler转发到目标服务器;服务器的响应也会返回给…...
第十九讲 | XGBoost 与集成学习:精准高效的地学建模新范式
🟨 一、为什么要学习集成学习? 集成学习(Ensemble Learning) 是一种将多个弱学习器(如决策树)组合成一个强学习器的策略。它在地理学、生态学、遥感分类等领域表现尤为突出。 📌 应用优势&#…...
基于 GoFrame 框架的电子邮件发送实践:优势、特色与经验分享
1. 引言 如果你是一位有1-2年Go开发经验的后端开发者,可能已经熟悉了Go语言在性能和并发上的天然优势,也曾在项目中遇到过邮件发送的需求——无论是用户注册时的激活邮件、系统异常时的通知,还是营销活动中的批量促销邮件,邮件功…...
ECharts 如何实现柱状图悬停时,整个背景区域均可触发点击事件
1. 前言 ECharts 柱状图的点击事件默认仅响应柱子本身的点击,本文旨在实现整个背景区域均可触发点击事件 2. 实现思路 核心:全局监听 坐标判断 数据转换 通过 getZr() 监听整个画布点击,结合像素坐标判断是否在图表区域内通过 containPi…...
金融简单介绍及金融诈骗防范
在当今社会,金融学如同一股无形却强大的力量,深刻影响着我们生活的方方面面。无论是个人的日常收支、投资理财,还是国家的宏观经济调控,都与金融学紧密相连。 一、金融学的概念 金融学,简单来说,是研…...
cursor+高德MCP:制作一份旅游攻略
高德开放平台 | 高德地图API (amap.com) 1.注册成为开发者 2.进入控制台选择应用管理----->我的应用 3.新建应用 4.点击添加Key 5.在高德开发平台找到MCP的文档 6.按照快速接入的步骤,进行操作 一定要按照最新版的cursor, 如果之前已经安装旧的版本卸载掉重新安…...
软件版本命名规范Semantic Versioning
语义化版本控制(Semantic Versioning,简称 SemVer)是一种广泛采用的版本号管理规范,旨在通过版本号传达软件更新的性质和影响,帮助开发者和用户理解每次发布的变更内容 🔢 版本号结构 语义化版本号通常采…...
Uniapp: 大纲
目录 一、基础巩固1.1、Uniapp:下拉选择框ba-tree-picker1.2、Uniapp:确认框1.3、Uniapp:消息提示1.4、Uniapp:获取当前定位坐标 二、项目配置2.1、Uniapp:修改端口号2.2、Uniapp:本地存储 一、基础巩固 1.1、Uniapp:…...
Kubernetes控制平面组件:API Server Webhook 授权机制 详解
云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes架构原则和对象设计(三)Kubernetes控…...
【KWDB 创作者计划】_产品技术解读_1
【KWDB 创作者计划】_产品技术解读_1 一、存储引擎:高性能混合存储架构1. 存储模型设计2. 存储压缩与编码3. 持久化策略二、KWDB 组件源码解析1. 核心模块分层架构2. 关键组件源码剖析三、KWDB 特性代码通读1. 实时分析能力(Real-Time OLAP)2. 混合负载隔离(HTAP)3. 智能索…...
Python Cookbook-6.2 定义常量
任务 你需要定义一些模块级别的变量(比如命名的常量),而且客户代码无法将其重新绑定。 解决方案 你可以把任何对象当做模块一样安装。将下列代码存为一个模块const.py,并放入你的Python的sys.path 指定的目录中: class _const(object):class ConstEr…...
【Python爬虫】简单案例介绍2
本文继续接着我的上一篇博客【Python爬虫】简单案例介绍1-CSDN博客 目录 跨页 3.2 环境准备 跨页 当对单个页面的结构有了清晰的认识并成功提取数据后,接下来就需要考虑页面之间的跨页问题。此时我们便迎来了下一个关键任务:如何实现跨页爬取…...
【神经网络】python实现神经网络(四)——误差反向传播的基础理论
一.反向传播 本章将介绍能够高效计算权重参数的梯度的方法——误差反向传播法,这里简单介绍一下什么是反向传播,加入有个函数y = f(x),那么它的反向传播为图下这个样子: 反向传播的计算顺序是,将输入信号E乘以节点的局部导数,然后将结果传递给下一个节点。这里所…...
【SQL】COUNT... FILTER 的适用场景
【SQL】COUNT... FILTER 的适用场景 一、引言二、FILTER 基础学习2.1 语法解析2.2 适用范围2.2.1 主流数据库支持情况 2.3 技术优势2.3.1 性能优化2.3.2 等阶写法对比 2.4 适用场景2.4.1 多维统计报表2.4.2 动态数据过滤2.4.3 复杂条件处理 三、总结 一、引言 今天参加业务评审…...
I/O进程(全)
I/O 一、标准IO 1.概念 在C库中定义的一组用于输入输出的函数 2.特点 (1).通过缓冲机制减少系统调用,提高效率 (2.)围绕流进行操作,流用FILE *来描述(3).标准IO默认打开了三个流,stdin(标准输入)、stdout(标…...
vue2使用ezuikit-js播放萤石视频
需求:需要在大屏上播放萤石视频,用到官方的ezuikit-js插件实现,并实现视频播放切换功能。有个问题至今没有解决,就是萤石视频的宽高是固定的,不会根据大屏缩放进行自适应。我这边做了简单的刷新自适应。 1.下载ezuikit…...
什么是Lodash
一、什么是lodash 在 JavaScript 开发中,Lodash 是一个非常受欢迎的实用工具库,旨在提供高效、模块化的实用函数,帮助开发者更轻松地处理数组、对象、字符串等常见数据结构。它是对 JavaScript 原生方法的增强和优化,它在开发中提…...
【笔试强训day19】
目录 第一题:小易的升级之路 描述 输入描述: 输出描述: 输入: 输出: 第二题:礼物的最大价值 描述 输入: 返回值: 备注: 第三题:对称之美 题目描述…...
STM32电机库 电机控制特性
ST MC FW库提供FOC和六步法两种电机控制方式。这使得它能够驱动永磁同步电机 (PMSM) 和无刷直流电机 (BLDC)。FOC 更适合 PMSM,而六步法更适合 BLDC 电机。该固件可以驱动内嵌式PMSM 和标贴式PMSM。 ST Motor Control 固件库提供以下功能: FOC SVPWM 生成: 可配置的 PW…...
【Linux】42.网络基础(2.4)
文章目录 2.3 TCP协议2.3.10 拥塞控制2.3.11 延迟应答2.3.12 捎带应答2.3.13 面向字节流2.3.14 粘包问题2.3.15 TCP异常情况2.3.16 TCP小结2.3.17 基于TCP应用层协议 2.3 TCP协议 2.3.10 拥塞控制 虽然TCP有了滑动窗口这个大杀器, 能够高效可靠的发送大量的数据. 但是如果在刚…...
