__rpm.so: underfined symbol : rpmpkgverifySigs 故障分析

前言:node

近期漏洞修復頻繁,各類組件須要升級,經屢次碰撞,發現 yum update 來升級組件是最有效最安全的方式(綠盟經過版本比對的掃描結果能夠忽略)。python

然而,各家的設備各家管,一到升級就發現一堆問題了。吶這就發生了這麼一個報錯:安全

 

yum update yum -y   #隨便寫一個,其實都同樣python2.7

There was a problem importing one of the Python moduleside

required to run yum. The error leading to this problem was:工具

  /usr/lib64/python2.7/site-packages/rpm/__rpm.so : underfined symbol rpmpkgverifySigsui

please install package which provides this module, or verify that module is installed correctly.this

It's possible that the above module doesn't match the current version of Python, which is:spa

2.7.5 (default , Jun 11 2019, 12:19:05)it

[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參數進行升級安裝,否則會留着兩個版本的同組件,你的下一手會很麻煩!

相關文章
相關標籤/搜索