前言:

近期漏洞修复频繁,各种组件需要升级,经多次碰撞,发现 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 故障分析的更多相关文章

  1. 关于js中的类型内容总结(类型识别)

    JS 有7种数据类型: 6种原始类型:Boollean    String   Number    Null    Underfined   Symbol 引用类型:Object 类型识别主要有以下四 ...

  2. keil调试问题记录

    1.错误类型:L6218E:Underfined symbol &&&&&&&&& (referred form &&a ...

  3. JavaScript 为什么要有 Symbol 类型?

    Symbols 是 ES6 引入了一个新的数据类型 ,它为 JS 带来了一些好处,尤其是对象属性时. 但是,它们能为我们做些字符串不能做的事情呢? 在深入探讨 Symbol 之前,让我们先看看一些 J ...

  4. iOS开发 引用第三方库出现duplicate symbol时的处理方法

      该篇文章是我自己从我的新浪博客上摘抄过来的, 原文链接为: http://blog.sina.com.cn/s/blog_dcc636350102wat5.html     在iOS开发中, 难免 ...

  5. OpenSceneGraph 编译 error LNK2019:unresolved external symbol 错误

    在编译 OpenSceneGraph 的一个简单示例时, #include <osgViewer/Viewer> #include <osgDB/ReadFile> void ...

  6. C语言调试过程中duplicate symbol错误分析

    说明:在我们调试C语言的过程中,经常会遇到duplicate symbol错误(在Mac平台下利用Xcode集成开发环境).如下图: 一.简单分析一下C语言程序的开发步骤. 由上图我们可以看出C语言由 ...

  7. 用vue.js学习es6(四):Symbol类型

    一.Symbol类型: 1.ES6引入了一种新的原始数据类型Symbol,表示独一无二的值.它是JavaScript语言的第七种数据类型,前六种是:Undefined.Null. 布尔值(Boolea ...

  8. 10 Symbol

    Symbol 书中讲了2部分. Symbol() Symbol 属性值. 完全两种画风的东西. 1. Symbol 首先他是一种全新的值. 不属于以前的任何一种 ES6引入了一种新的原始数据类型Sym ...

  9. Xcode同一个Workspace中两个工程依赖于Undefined Symbol Error

    Workspace中包含两个工程A和B: A是dylib工程,引用了另一个动态库C,B需要链接(依赖)A库.当编译B时,会先编译A,然后把A生成的dylib拷贝到B的生成目录中.如果要运行B的话需要把 ...

随机推荐

  1. Thread <number> cannot allocate new log, sequence <number>浅析

    有时候,你会在ORACLE数据库的告警日志中发现"Thread <number> cannot allocate new log, sequence <number> ...

  2. sqlserver实现分隔字符串

    sqlserver 使用函数实现分隔字符串 create function dbo.fn_split ( @str_source nvarchar(max), ) ) returns @temp ta ...

  3. Luogu P5408 【模板】第一类斯特林数·行

    为什么要做这题呢,当然是有用啊qwq 首先我们考虑非常经典的式子: \[x^{\overline{n}}=\sum_i \left[^n_i\right] x^i\] 然后上倍增: \[x^{\ove ...

  4. Java连载50-import导入、访问控制权限修饰符

    一.import 1.import语句用来完成导入其他类,同一个包下的类不需要再导入 不在同一个包下需要手动导入. 2.import语法格式 import 类名: import 包名.*; //imp ...

  5. JavaScript:ES6的新特性

    1.关键字 const:修饰常量.ES6之前只有变量的声明字段var,ES6开始引入常量关键字,被修饰的变量无法被修改. <script type="text/javascript&q ...

  6. OC:浅析Runtime中消息转发机制

    一.介绍 OC是一门动态性语言,其实现的本质是利用runtime机制.在runtime中,对象调用方法,其实就是给对象发送一个消息,也即objc_msgSend().在这个消息发送的过程中,系统会进行 ...

  7. js获取url参数值的方法总结

    1.方式一:通过字符串截取的方式获取参数值: 1).函数一:获取URL中的参数名及参数值的集合 /** * [获取URL中的参数名及参数值的集合] * 示例URL:http://htmlJsTest/ ...

  8. php 交换值

    使用异或和第三参数比较 结果比较:(其中之一) 异或:执行时间在 0.035-0.085之间 第三参数:执行时间在 0.035-0.050之间 结论:使用第三参数执行效率更高/更稳定

  9. python Qt5 实战(一)按钮颜色

    工作中,工具用到了python Qt5,涉及到了按钮颜色,这里就做个总结.也顺便给要用这块的同仁抛出来一个砖头,把大牛引出来做个指导. 一般设置按钮的颜色有三种表达:如下所示:具体的怎么使用,估计要看 ...

  10. python接口自动化6-参数化关联

    前言 接口中我们经常需要用到参数关联,比如,登录token,需要传给后面的参数使用,又比如要查看某个商品需要将商品的id传入下一个接口使用. 等等,所以我们必要学会 re 正则获取,或者返回json获 ...