CentOS8 解決 yum元數據下載失敗的方法


背景

  • 最近同事反饋CentOS的機器無法再現安裝 rpm包了. 提示信息主要是下載源數據失敗.
  • 今天上午抽時間進行了一下簡單驗證, 晚上進行一下總結. 避免遺忘.
  • 認為與Redhat被IBM收購之后, 收緊大家白嫖的資源有關系, 紅帽進行了有意的修改,但是沒有考慮太多兼容性

問題現象

  • CentOS8 這邊的機器存在問題
機器版本信息
CentOS Linux release 8.0.1905 (Core)
報錯信息為:
[root@CentOS8 yum.repos.d]# yum makecache
CentOS-8 - Base
為 repo 'BaseOS' 下載元數據失敗
錯誤:為 repo 'BaseOS' 下載元數據失敗
  • 網上很多解決方法讓進行替換yum源, 但是這邊發現替換了也是不起效果.

問題解決

  • 自己進行了一下簡單的分析, 發現默認的倉庫信息其實是不正確的
CentOS8之后倉庫已經不是這樣的url了:
https://mirrors4.tuna.tsinghua.edu.cn/centos/8/BaseOS/x86_64/os/
版本號基於stream進行了修改
https://mirrors4.tuna.tsinghua.edu.cn/centos/8-stream/BaseOS/x86_64/os/
# 注意變成了 8-stream 而不是 8 
  • 知道這個地方之后, 解決方法就比較簡單了, 將url改對進行下載
find /etc/yum.repos.d/ -name "*.repo" | xargs  sed -i 's/$releasever/8-stream/g'
find /etc/yum.repos.d -name "*.repo" | xargs  sed -i 's/$basearch/x86_64/g'
  • 注意進行了這樣修改 需要先進行備份.
  • 理論上就可以進行元數據的建立了.

其他問題

  • 今天進行部署時還發現一個這樣的問題:
模塊依賴問題

 問題 1: conflicting requests
  - nothing provides module(perl:5.26) needed by module perl-DBD-MySQL:4.046:8010020191114030811:073fa5fe-0.x86_64
 問題 2: conflicting requests
  - nothing provides module(perl:5.26) needed by module perl-DBD-SQLite:1.58:8010020191114033549:073fa5fe-0.x86_64
 問題 3: conflicting requests
  - nothing provides module(perl:5.26) needed by module perl-DBI:1.641:8010020191113222731:16b3ab4d-0.x86_64
元數據緩存已建立。
  • 網上的解決方案說是可以用如下命令來解決:
    yum module enable perl:5.26
  • 但是我發現還是無效
  • 改用官方源 修改 releaserver 就可以了.

方法二

  • 根據此博客https://www.cnblogs.com/reachos/p/11089013.html
  • 應該還可以不修改 baseurl 的方式進行處理, 可以修改yum 默認的參數變量 進行正確的url指向
cat > /etc/yum/vars/basearch <<EOF
x86_64
EOF

cat > /etc/yum/vars/releasever <<EOF
8-stream
EOF
  • 注意如果是銀河麒麟或者是其他操作系統需要根據 倉庫的url進行修改.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM