__rpm.so: underfined symbol : rpmpkgverifySigs 故障分析
前言:
近期漏洞修复频繁,各种组件需要升级,经多次碰撞,发现 yum update 来升级组件是最有效最安全的方式(绿盟通过版本比对的扫描结果可以忽略)。
然而,各家的设备各家管,一到升级就发现一堆问题了。呐这就发生了这么一个报错:
yum update yum -y #随便写一个,其实都一样
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/rpm/__rpm.so : underfined symbol rpmpkgverifySigs
please install package which provides this module, or verify that 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 , Jun 11 2019, 12:19:05)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
看到以上内容,相信大家都会:
1.急急忙忙地找 python 包
2. 查rpmpkgverifySigs 是什么
3.再不行就去升级gcc
然而告诉大家: 都错了!
正确的逻辑是:
1. rpmpkgverifySigs 这个变量是 __rpm.so 进行调用,但是脚本不认识,说明python版本错了
2. 按照红帽的习惯,像python这种多组件使用的脚本语言,红帽并不会给rpm这么重要的工具使用公用库,而是使用独有封装的库
3. 检查rpm有关的.rpm包,在里面搜索python: rpm -qa|grep rpm| grep python
4. 显示: rpm -python-4.11.3-32.el7.x86_64 答案呼之欲出,只要重装rpm-python
5. 大家都知道什么是依赖包,其实依赖包之间的关系还真是千丝万缕, 你觉得只重装rpm-python就解决问题么?五十五吧,因为你不知道管理员装python后还弄了什么,所以保障点,一套包全升级了:
rpm -Uvh rpm-libs-xxxxxx.rpm --nodeps
rpm -Uvh rpm-xxxxxx.rpm --nodeps
rpm -Uvh rpm-build-xxxxxx.rpm --nodeps
rpm -Uvh rpm-python-xxxxxx.rpm --nodeps
rpm -Uvh rpm-sign-xxxxxx.rpm --nodeps
ps:
1. rpm 安装时有时2个包互相依赖,装哪个先都会报错,此时只能 --nodeps 解决
2.rpm 请用 -U参数进行升级安装,不然会留着两个版本的同组件,你的下一手会很麻烦!
__rpm.so: underfined symbol : rpmpkgverifySigs 故障分析的更多相关文章
- 关于js中的类型内容总结(类型识别)
JS 有7种数据类型: 6种原始类型:Boollean String Number Null Underfined Symbol 引用类型:Object 类型识别主要有以下四 ...
- keil调试问题记录
1.错误类型:L6218E:Underfined symbol &&&&&&&&& (referred form &&a ...
- JavaScript 为什么要有 Symbol 类型?
Symbols 是 ES6 引入了一个新的数据类型 ,它为 JS 带来了一些好处,尤其是对象属性时. 但是,它们能为我们做些字符串不能做的事情呢? 在深入探讨 Symbol 之前,让我们先看看一些 J ...
- iOS开发 引用第三方库出现duplicate symbol时的处理方法
该篇文章是我自己从我的新浪博客上摘抄过来的, 原文链接为: http://blog.sina.com.cn/s/blog_dcc636350102wat5.html 在iOS开发中, 难免 ...
- OpenSceneGraph 编译 error LNK2019:unresolved external symbol 错误
在编译 OpenSceneGraph 的一个简单示例时, #include <osgViewer/Viewer> #include <osgDB/ReadFile> void ...
- C语言调试过程中duplicate symbol错误分析
说明:在我们调试C语言的过程中,经常会遇到duplicate symbol错误(在Mac平台下利用Xcode集成开发环境).如下图: 一.简单分析一下C语言程序的开发步骤. 由上图我们可以看出C语言由 ...
- 用vue.js学习es6(四):Symbol类型
一.Symbol类型: 1.ES6引入了一种新的原始数据类型Symbol,表示独一无二的值.它是JavaScript语言的第七种数据类型,前六种是:Undefined.Null. 布尔值(Boolea ...
- 10 Symbol
Symbol 书中讲了2部分. Symbol() Symbol 属性值. 完全两种画风的东西. 1. Symbol 首先他是一种全新的值. 不属于以前的任何一种 ES6引入了一种新的原始数据类型Sym ...
- Xcode同一个Workspace中两个工程依赖于Undefined Symbol Error
Workspace中包含两个工程A和B: A是dylib工程,引用了另一个动态库C,B需要链接(依赖)A库.当编译B时,会先编译A,然后把A生成的dylib拷贝到B的生成目录中.如果要运行B的话需要把 ...
随机推荐
- 微信小程序——仿jqueryValidate表单验证插件WxValidate的二次封装(一)
在做web开发时,表单验证插件我们前端用的是jqueryValidate,由于个人主要精力是在后台JAVA开发上,为了让插件与后台更好的结合和使用,通过JAVA的自定义组件将表单全部重新写了一边,同时 ...
- Linux-3.14.12内存管理笔记【建立内核页表(2)】-低端内存的建立
前面的前奏已经分析介绍了建立内核页表相关变量的设置准备,接下来转入正题分析内核页表的建立. 建立内核页表的关键函数init_mem_mapping(): [file:/arch/x86/mm/init ...
- Ubuntu18.04初始化
Ubuntu18.04初始化 更新源: sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo gedit /etc/apt/sour ...
- Navicat Premium 破解方法
最新Navicat Premium12 破解方法,亲测可用 1.下载Navicat Premium 官网https://www.navicat.com.cn/下载最新版本下载安装(文末,网盘地址有64 ...
- go语言设计模式之Strategy
package main import ( "flag" "fmt" "image" "image/color" &qu ...
- 对比keep-alive路由缓存设置的2种方式
方式有两种 .路由元信息(2.1.0版本之前) .属性方式(2.1.0版本之后新增) Vue2.1.0之前: 想实现类似的操作,你可以: 配置一下路由元信息 创建两个keep-alive标签 使用v- ...
- (day59)十一、CSRF、Auth模块、impotlib模块、settings源码
目录 一.模拟实现中间件的编程思想 (一)impotlib模块 (二)实现功能的配置使用 二.跨站请求伪造CSRF (一)由来 (二)form表单的CSRF (三)ajax中的CSRF (1)通过da ...
- [WPF]实现TextBox文本框单击全选
原文:[WPF]实现TextBox文本框单击全选 /// <summary> /// Void:设置获取焦点时全选文本 /// </summary&g ...
- angularjs中ng-class常用写法,三元表达式、评估表达式与对象写法
壹 ❀ 引 ng-class可以说在angularjs样式开发中使用频率特别高了,这不我想利用ng-class的三元运算符的写法来定义一个样式,结果怎么都想不起来正确写法,恼羞成怒还是整理一遍吧,那 ...
- 【linux命令】权限管理命令(chattr、lsattr、sudo)
目录 chattr lsattr sudo 一.chattr命令 chattr命令用来修改文件系统的权限属性,只有 root 用户可以使用,建立凌驾于 rwx 基础权限之上的授权. PS:chattr ...