解决CentOS的yum命令失效的问题

近日笔者对一台装有 CentOS 7.9 系统的服务器反复折腾,玩到最后发现 yum 命令用不了,总是报下面的错误信息:

There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:/usr/lib64/python2.7/site-packages/pycurl.so: undefined symbol: CRYPTO_num_locksPlease install a package which provides this module, or
verify that the module is installed correctly.It's possible that the above module doesn't match the
current version of Python, which is:
2.7.5 (default, Nov 14 2023, 16:14:06) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]If you cannot solve this problem yourself, please go to 
the yum faq at:http://yum.baseurl.org/wiki/Faq

服务器原先装有 Python 2.7.5,因我安装了 Python 3.10,怀疑是版本冲突造成,尝试删除 Python 3.10 后仍然无济于事,这下 yum 被我玩坏了。yum 命令是基于 Python 2.7.5版的,尽管我尝试使用 pip install yum 也不能重新安装 yum。

我在网上搜了很多解决yum无法使用的问题的文章,绝大部分文章都虎头蛇尾,没有根本解决问题,后来找到下面一文给我提供灵感:

成功解决静态链接库无法yum安装问题!

十分感谢博主“就想做一条闲鱼”。

上面报错信息中提及 /usr/lib64/python2.7/site-packages/pycurl.so 这个文件,我们查看一下这个文件的情况。

CRYPTO_num_locks 是 OpenSSL 库中的一个函数,用于处理加密操作中的锁管理。
在某些版本的OpenSSL中,CRYPTO_num_locks 函数用于获取需要的锁数量,以确保线程安全。
这个函数在多线程应用中尤为重要,因为它帮助管理对加密操作的并发访问。

pycurl.sopycurl 库的共享对象文件,它是 libcurl 的 Python 绑定。
pycurl 库用于在 Python 中执行 URL 请求和数据传输,底层依赖 libcurl 库,而 libcurl 又依赖于 OpenSSL 库来处理 HTTPS 连接和加密操作。

1、查看依赖关系

ldd /usr/lib64/python2.7/site-packages/pycurl.so

输出内容类似:

        linux-vdso.so.1 =>  (0x00007ffd0d9fe000)libcurl.so.4 => /usr/local/lib/libcurl.so.4 (0x00007f0ddb670000)libpython2.7.so.1.0 => /lib64/libpython2.7.so.1.0 (0x00007f0ddb2a4000)libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0ddb088000)libc.so.6 => /lib64/libc.so.6 (0x00007f0ddacba000)libnghttp2.so.14 => /lib64/libnghttp2.so.14 (0x00007f0ddaa92000)libssl.so.10 => /lib64/libssl.so.10 (0x00007f0dda820000)libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f0dda3bd000)......

上面提及 pycurl.solibcurl 息息相关,我把命令改一下:

ldd /usr/lib64/python2.7/site-packages/pycurl.so | grep "libcurl"

筛选出下面的信息:
在这里插入图片描述

2、查看 libcurl 相关的文件

执行命令:

ll /usr/local/lib/libcurl*

结果显示:
在这里插入图片描述

由此可见,系统中存在多个版本的 libcurl 库,包括 libcurl.so.4.7.0、libcurl.so.4.8.0,以及相应的符号链接(libcurl.so和libcurl.so.4)。
忽然想起来我就是不久前反复安装不同版本的 curl,可能导致 pycurl.so 链接到错误版本的libcurl,引发 yum 无法使用,报出 undefined symbol: CRYPTO_num_locks 错误。

3、删除链接文件

cd /usr/local/lib
rm -rf libcurl.so
rm -rf libcurl.so.4

至此,CentOS 的 yum 命令就恢复正常了!
在这里插入图片描述

这种问题通常是由库文件冲突或不兼容引起的,解决方法是确保程序加载的是系统默认的库文件,避免自定义安装的库文件干扰系统工具的运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/852459.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vitis HLS 学习笔记--Vitis Accelerated Libraries介绍

1. 简介 Vitis Accelerated Libraries,包含很多现成的库,这些库都是开源的,也就是说代码是公开的,而且已经优化过,可以让程序运行得更快。你不需要改变太多你的代码,就能让你的程序速度提升。 这些库有很…

ROS 自动驾驶多点巡航

ROS 自动驾驶多点巡航: 1、首先创建工作空间: 基于我们的artca_ws; 2、创建功能包: 进入src目录,输入命令: catkin_create_pkg point_pkg std_msgs rospy roscpptest_pkg 为功能包名,后面两个是依赖&a…

H5的3D展示有可能代替PC传统3D展示么?

H5的3D展示技术正在快速发展,并且随着5G网络的普及和手机硬件性能的提升,H5的3D展示在某些方面已经能够接近甚至超越传统PC上的3D展示效果,比如 博维数孪 的渲染能力及效果。但H5和PC的3D展示互相之间是各有优势领域和行业支持,短…

齐普夫定律在循环神经网络中的语言模型的应用

目录 齐普夫定律解释公式解释图与公式的关系代码与图的分析结论 使用对数表达方式的原因1. 线性化非线性关系2. 方便数据可视化和分析3. 降低数值范围4. 方便参数估计公式详细解释结论 来自:https://zh-v2.d2l.ai/chapter_recurrent-neural-networks/language-model…

自动驾驶---Perception之视觉点云雷达点云

1 前言 在自动驾驶领域,点云技术的发展历程可以追溯到自动驾驶技术的早期阶段,特别是在环境感知和地图构建方面。 在自动驾驶技术的早期技术研究中,视觉点云和和雷达点云都有出现。20世纪60年代,美国MIT的Roberts从2D图像中提取3D…

手把手教程本地调试Datax

背景:使用Datax做数仓同步数据得工具,有时需要自己开发或者修改某个reader或writer插件,那么本地调试就很重要。 一. 下载 从GitHub上下载或者clone下来Datax项目。 https://github.com/alibaba/DataX 找到Core模块,运行入口就…

windows 下 docker 入门

这里只是具体过程,有不清楚的欢迎随时讨论 1、安装docker ,除了下一步,好像也没有其他操作了 2、安装好docker后,默认是运行在linux 下的,这时我们需要切换到windows 环境下, 操作:在右下角d…

知从科技获得ASPICE CL3认证证书

近日,知从科技正式通过Automotive SPICE CL3(汽车软件过程改进及能力评定)评估认证,这是继23年3月通过ASPICE CL2级评估的又一个重要里程碑。ASPICE CL3级是目前国内汽车软件领域最高的评估认证等级,这标志着知从科技的…

hw面试总结

在这里给大家推荐一个阿里云的活动,可白嫖一年2h4g服务器 活动链接:https://university.aliyun.com/mobile?clubTaskBizsubTask…11404246…10212…&userCodeks0bglxp 一、漏洞分析 1.SQL注入 原理: 当Web应用向后台数据库传递SQL…

C#|Maui|BootstrapBlazor|Bootstrap Blazor 组件库改模板 | Bootstrap Blazor 组件库改布局,该怎么改?

先copy一个项目下来:Bootstrap Blazor 组件库 一套基于 Bootstrap 和 Blazor 的企业级组件库 发现不是很满足我的需求,我要把右下角的admin移动到左边去,该怎么移动? 先改代码 点进去到Layout.razor 文档,改成如下&am…

净化机应用领域广泛 美国是我国净化机主要出口国

净化机应用领域广泛 美国是我国净化机主要出口国 净化机,又称为空气清洁设备或空气清新机,是一种专门设计用于滤除或杀灭空气污染物、提升空气清洁度的装置。净化机具备高效的过滤功能,能够滤除空气中的悬浮微粒、细菌、病毒和花粉等污染物&a…

KTH4603 3D Hall传感器在强磁入侵检测中的应用

背景介绍 电子系统一直面临强磁干扰的威胁,保护这些设备免受强磁干扰成为一个重要课题。非法者通过施加强磁意图篡改或干扰它们,窃取产品或服务。强磁场可以对电子设备产生严重的影响,包括但不限于:数据损坏、功能故障、安全隐患…

Ubuntu的文件权限介绍

Linux系统是一个多用户系统,每个用户都会创建自己的文件。为了防止其他人擅自改动他人的文件,需要拥有一套完善的文件保护机制。在Linux系统中,这种保护机制就是文件的访问权限。文件的访问权限决定了谁可以访问和如何访问特定的文件。 为了…

深度学习500问——Chapter11:迁移学习(1)

文章目录 11.1 迁移学习基础知识 11.1.1 什么是迁移学习 11.1.2 为什么需要迁移学习 11.1.3 迁移学习的基本问题有哪些 11.1.4 迁移学习有哪些常用概念 11.1.5 迁移学习与传统机器学习有什么区别 11.1.6 迁移学习的核心及度量准则 11.1.7 迁移学习与其他概念的区别 11.1.8 什么…

服务器再升级!64线程服务器震撼上线,全新渲染体验等你来解锁

秉承着 “科技赋能创意,连接创造价值”的使命, 经过精心的策划和筹备, 蓝海创意云 64线程服务器, 以全新的面貌,优惠的价格, 与大家见面了! 诚邀您一起,解锁全新的渲染体验&am…

《软件定义安全》之八:软件定义安全案例

第8章 软件定义安全案例 1.国外案例 1.1 Fortinet:传统安全公司的软件定义方案 Fortinet的软件定义安全架构强调与数据中心的结合,旨在将安全转型为软件定义的模式,使安全运维能够与数据中心的其他部分一样灵活、弹性。在Fortinet看来&…

亿达四方:一站式SolidWorks代理服务,打造设计竞争力

在当今瞬息万变的设计与制造领域,高效、精准的3D设计软件已成为推动企业创新与发展的核心驱动力。作为业界知名的SolidWorks一站式代理服务商,亿达四方致力于为企业搭建从软件采购到技术应用的全方位桥梁,全面赋能设计团队,助力企…

stable-diffusion.cpp 文字生成图片

纯 C/C 中 [Stable Diffusion] 的推断 https://github.com/CompVis/stable-diffusion ## 特点 - 基于 [ggml](https://github.com/ggerganov/ggml) 的普通 C/C 实现,工作方式与 [llama.cpp](https://github.com/ggerganov/llam…

微信小程序请求request封装

公共基础路径封装 // config.js module.exports {// 测试BASE_URL: https://cloud.chejj.cn,// 正式// BASE_URL: https://cloud.mycjj.com };请求封装 // request.js import config from ../config/baseUrl// 请求未返回时的loading const showLoading () > wx.showLoadi…

蓝桥杯软件测试第十五届蓝桥杯模拟赛1期题目解析

PS 需要第十五界蓝桥杯模拟赛1期功能测试模板、单元测试被测代码、自动化测试被测代码请加🐧:1940787338 备注:15界蓝桥杯省赛软件测试模拟赛1期 题目1 功能测试用例1(测试用例)(15分) 【前期准备】 按步…