不同OS版本中的同一yum源yum list差異排查思路

問題描述:

qemu-guest-agent二進制rpm包的yum倉庫源和yum源倉庫配置文件path_to_yum_conf,
通過yum list --available -c path_to_yum_conf 查詢時,不同的OS版本出現了不同的結果
anolis-8無法識別
centos8可以識別
說明:
1 測試時已禁用除自定義yum源path_to_yum_conf之外的其他yum源
2 qemu-guest-agent二進制rpm包的架構和OS的架構是一致的
3 OS端的rpm管理器版本是相同的

問題確認:

相同架構、相同RPM版本、相同倉庫配置下,CentOS 8可識別包而Anolis 8.6無法識別


一、關鍵排查方向
  1. OS發行版標識差異

    • Anolis和CentOS的發行版標識(如$releasever$basearch變量)可能不同,導致倉庫路徑或包依賴不匹配。
    • 檢查OS標識文件:
      cat /etc/os-release          # 查看ID和VERSION_ID
      rpm -E '%{dist}'             # 查看RPM宏中的發行版標識(如.el8、.an8)
      
  2. 倉庫元數據兼容性

    • 倉庫中repodata的生成工具(如createrepo版本)可能包含針對特定發行版的過濾規則。
    • 檢查倉庫元數據中的包依賴條件:
      # 查看qemu-guest-agent包的Requires/Conflicts字段
      rpm -qpR /path/to/qemu-guest-agent.rpm
      
  3. YUM變量動態解析差異

    • Anolis可能未正確定義$releasever$basearch變量,導致倉庫URL或包選擇失敗。
    • 查看YUM變量實際值:
      yum -c path_to_yum_conf makecache  # 生成緩存后查看變量解析
      cat /etc/yum/vars/*                # 檢查變量定義
      

二、分步驗證與修復
1. 驗證OS發行版標識
# 在Anolis 8.6和CentOS 8上分別執行
cat /etc/redhat-release
rpm -E '%{dist}'
  • 若Anolis返回類似.an8的標識
    倉庫元數據或包依賴可能包含CentOS專屬標識(如Requires: centos-release),導致Anolis不滿足條件。
2. 檢查YUM詳細輸出
# 在Anolis上啟用調試模式
yum -c path_to_yum_conf --verbose --disablerepo='*' --enablerepo=custom_repo list available
  • 觀察輸出中是否提示包被排除(如Excluding: qemu-guest-agent due to OS mismatch)。
3. 分析倉庫元數據
  • 下載倉庫的repodata/primary.xml文件,搜索qemu-guest-agent包條目:
    <package type="rpm"><name>qemu-guest-agent</name><arch>x86_64</arch><version epoch="0" ver="2.12.0" rel="1.el8"/><format><rpm:requires><rpm:entry name="systemd" /><!-- 檢查是否存在發行版相關依賴(如'centos-release') --></rpm:requires></format>
    </package>
    
  • 若存在發行版限定依賴:需重構RPM包,移除對特定發行版的依賴。
4. 強制覆蓋YUM變量
  • path_to_yum_conf中顯式定義變量,強制匹配倉庫路徑:
    [custom_repo]
    name=Custom Repo
    baseurl=http://repo.example.com/$basearch/
    # 強制指定releasever(假設倉庫路徑使用8)
    enabled=1
    

三、解決方案
  1. 統一倉庫元數據生成

    • 使用createrepo_c重新生成元數據,避免包含發行版過濾標簽:
      createrepo_c --no-database /path/to/repo
      
  2. 修改RPM包依賴

    • .spec文件中移除發行版相關依賴(如BuildRequires: centos-release),重新構建RPM包。
  3. 調整Anolis的YUM變量

    • 創建符號鏈接或覆蓋變量定義文件:
      # 若Anolis的$releasever應為8
      echo "8" > /etc/yum/vars/releasever
      
  4. 測試兼容性模式

    • 在Anolis上使用--releasever=8強制指定版本:
      yum -c path_to_yum_conf --releasever=8 list available
      

四、根本原因總結
因素CentOS 8Anolis 8.6
發行版標識 (%{dist}).el8.an8
倉庫元數據過濾匹配.el8不匹配.an8
YUM變量解析$releasever=8$releasever可能未定義

通過調整倉庫元數據生成策略或對齊OS標識變量,可解決此類兼容性問題。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/80254.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80254.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/80254.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何使用極狐GitLab 軟件包倉庫功能托管 helm chart?

極狐GitLab 是 GitLab 在中國的發行版&#xff0c;關于中文參考文檔和資料有&#xff1a; 極狐GitLab 中文文檔極狐GitLab 中文論壇極狐GitLab 官網 軟件包庫中的 Helm charts (BASIC ALL) WARNING:Helm chart 庫正在開發中&#xff0c;由于功能有限&#xff0c;尚未準備好用…

【PostgreSQL數據分析實戰:從數據清洗到可視化全流程】3.1 數據質量評估指標(完整性/一致性/準確性)

&#x1f449; 點擊關注不迷路 &#x1f449; 點擊關注不迷路 &#x1f449; 點擊關注不迷路 文章大綱 數據質量評估核心指標&#xff1a;完整性、一致性、準確性實戰解析3.1 數據質量評估指標體系3.1.1 完整性&#xff1a;數據是否存在缺失1.1.1 核心定義與業務影響1.1.2 檢測…

詳解 FFMPEG 交叉編譯 `FLAGS` 和 `INCLUDES` 的作用

FLAGS 和 INCLUDES這兩行是 Android NDK 編譯時的編譯器選項&#xff0c;用于控制代碼生成、優化、調試、安全性和頭文件搜索路徑。下面逐項詳解&#xff1a; 1. FLAGS 詳解&#xff08;編譯器選項&#xff09; FLAGS 定義了傳遞給 C/C 編譯器&#xff08;如 clang 或 gcc&…

【RK3588嵌入式圖形編程】-Cairo-Cairo圖形庫支持后端

Cairo圖形庫支持后端 文章目錄 Cairo圖形庫支持后端1、PNG圖像后端2、PDF文件后端3、SVG文件后端4、GTK窗口支持Cairo庫支持多種后端。在本文中,我們使用Cairo創建PNG圖像、PDF文件、SVG文件,并在GTK窗口上繪制。 1、PNG圖像后端 在第一個示例中,我們創建一個 PNG 圖像。 …

【常用算法:排序篇】2.快速排序的算法精要

快速排序是算法領域的"九陽神功"&#xff0c;掌握其精髓能讓你在算法修煉之路上突破瓶頸。 1. 快速排序的核心思想 快速排序&#xff08;Quicksort&#xff09;是一種基于分治思想的高效排序算法&#xff0c;核心步驟為&#xff1a; 選擇基準值&#xff08;Pivot&…

在現代Web應用中集成 PDF.js (pdfjs-dist 5.2 ESM): 通過 jsdelivr 實現動態加載與批注功能的思考

PDF 文檔在現代 Web 應用中越來越常見&#xff0c;無論是作為文檔預覽、報告展示還是在線編輯的載體。Mozilla 的 PDF.js 是一個功能強大的 JavaScript 庫&#xff0c;它使得在瀏覽器端渲染和顯示 PDF 文件成為可能&#xff0c;無需依賴原生插件。 本文將深入探討如何在你的項…

基于FPGA控制ADC0832雙通道采樣+電壓電流采樣+LCD屏幕顯示

基于FPGA控制ADC0832雙通道采樣電壓電流采樣LCD屏幕顯示 前言一、芯片手冊閱讀1.SPI通信時序 二、仿真分析三、代碼分析總結視頻演示 前言 定制 要求使用ADC0832芯片進行ADC采樣。其中電壓采樣以及電流采樣是固定電路&#xff0c;是硬件設計&#xff0c;跟軟件沒沒關系。本質上…

生產部署方案pm2配合python3腳本

前言 使用python3來處理redis 消息隊列&#xff0c;記錄下生產部署方案 「生產部署方案」&#xff1a; 多進程&#xff08;動態擴容&#xff09;無限自愈日志自動壓縮系統級守護可多隊列多worker 終極穩健版&#xff1a;PM2 Logrotate 自動擴容 守護鏈 適合&#xff1a…

Python全流程開發實戰:基于IMAP協議安全下載個人Gmail郵箱內所有PDF附件

文章目錄 一、需求分析與安全前置&#xff1a;為什么需要專用工具&#xff1f;1.1 痛點場景1.2 技術方案選擇 二、準備工作&#xff1a;Gmail賬號安全配置與環境搭建2.1 開啟兩步驗證&#xff08;必做&#xff01;&#xff09;2.2 創建應用專用密碼&#xff08;替代普通密碼&am…

巧用python之--模仿PLC(PLC模擬器)

工作中用到了VM(VisionMaster4.3)有時候需要和PLC打交道,但是PLC畢竟是別人的,不方便修改別人的程序,這時候需要一個靈活的PLC模擬器是多么好呀! 先說背景: PLC型號 匯川Easy521: Modbus TCP 192.168.1.10:502 在匯川Easy521中Modbus保持寄存器D寄存器 ,在modbus協議中 0-4區…

docker構建鏡像并上傳dockerhub

docker構建鏡像并上傳dockerhub 前提條件&#xff1a;需要連接梯子 將梯子配置到虛擬機中&#xff08;確保主機能夠連接 hub.docker.com&#xff09; 使用ipconfig 查詢主機的 ip4地址虛擬機的連接模式改成橋接模式&#xff08;復制主機的地址網絡&#xff09;將ip4配置到虛擬…

python實現的音樂播放器

python實現的音樂播放器 音樂播放器,原來寫過一個簡陋的例子,可見 https://blog.csdn.net/cnds123/article/details/137874107 那個不能拖動播放進度條上的滑塊到新的位置播放。下面介紹的可以拖動播放進度條上的滑塊到新的位置播放。 簡單實用的音樂播放器 這個簡單實用的…

[網安工具] 端口信息收集工具 —— 御劍高速 TCP 全端口掃描工具 · 使用手冊

&#x1f31f;想了解其它網安工具&#xff1f;看看這個&#xff1a;[網安工具] 網絡安全工具管理 —— 工具倉庫 管理手冊 https://github.com/NepoloHebo/Yujian-high-speed-TCP-full-port-scannerhttps://github.com/NepoloHebo/Yujian-high-speed-TCP-full-port-scanner 0…

數字孿生賦能智慧城市:從概念到落地的深度實踐

在城市規模與復雜度持續攀升的當下&#xff0c;傳統管理模式已難以滿足現代城市精細化治理需求。數字孿生技術憑借構建虛擬城市鏡像、實現實時數據交互與智能決策的特性&#xff0c;成為智慧城市建設的核心引擎。本文將通過多個典型案例&#xff0c;深度解析數字孿生技術如何重…

DeFi開發系統軟件開發:技術架構與生態重構

DeFi開發系統軟件開發&#xff1a;技術架構與生態重構 ——2025年去中心化金融開發的范式革新與實踐指南 一、技術架構演進&#xff1a;從單一鏈到多鏈混合引擎 現代DeFi系統開發已從單一公鏈架構轉向“跨鏈互操作混合模式”&#xff0c;結合中心化效率與去中心化安全雙重優勢…

相同IP和端口的服務器ssh連接時出現異常

起因 把服務器上的一個虛擬機搞壞了&#xff0c;所以刪除重新創建了一個&#xff0c;端口號和IP與之前的虛擬機相同。 ssh usernameIP -p port 時報錯 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone…

驗證es啟動成功

1. 查看命令行輸出信息 在啟動 Elasticsearch 時&#xff0c;命令行窗口會輸出一系列日志信息。若啟動成功&#xff0c;日志里通常會有類似下面的信息&#xff1a; plaintext [2025-05-06T13:20:00,000][INFO ][o.e.n.Node ] [node_name] started其中 [node_na…

CentOS網絡之network和NetworkManager深度解析

文章目錄 CentOS網絡之network和NetworkManager深度解析1. CentOS網絡服務發展歷史1.1 傳統network階段&#xff08;CentOS 5-6&#xff09;1.2 過渡期&#xff08;CentOS 7&#xff09;1.3 新時代&#xff08;CentOS 8&#xff09; 2. network和NetworkManager的核心區別3. ne…

Unity:父掛 Rigidbody2D、子掛 Collider2D 時觸發器不生效的問題分析

目錄 ?問題現象 &#x1f50d; 排查與定位 ?? Unity 觸發機制的核心要求 ? 為什么把 Collider2D 移到父物體后就能觸發&#xff1f; &#x1f4a1; 解決方案 在 Unity 2D 游戲開發中&#xff0c;很多人習慣用父物體掛載 Rigidbody2D&#xff0c;而將不同的身體部位&am…

Google AI版圖:解析AI Studio, Gemini, NotebookLM與GCP

1. 2C vs 2B: AI Studio: 主要是面向開發者&#xff0c;提供一個易用的界面來探索和構建基于Google模型的應用。雖然最終的應用可能服務于C端或B端&#xff0c;但AI Studio本身更多是一個開發者的工具平臺&#xff0c;可以看作是連接模型能力和各種應用的橋梁。它可以被個人開…