dnf 更新時 openh264 repo 發生錯誤

 平常更新的訊息都沒特別注意,今天仔細去看 dnf 更新的訊息才發現有以下的錯誤訊息。

Fedora 34 openh264 (From Cisco) - x86_64                                                                                                 85  B/s | 271  B     00:03     
Errors during downloading metadata for repository 'fedora-cisco-openh264': 
  - Status code: 404 for https://codecs.fedoraproject.org/openh264/34/x86_64/os/repodata/repodata/repomd.xml (IP: 38.145.60.21)                                         
Error: 無法下載「fedora-cisco-openh264」軟體庫的中介資料:Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried   
忽略軟體庫:fedora-cisco-openh264

Fedora 34 openh264 (From Cisco) 主要是提供 OpenH264 codec 的 repostory (可參考 Fedora Project wiki - OpenH264),不知何時開始出現如上的錯誤。今天才注意到,通常這類的錯誤訊是由連不到提供服務的網站或是服務網站的目錄結構異動造成無法取得中介資料而造成。

手動連到訊息中的網址 https://codecs.fedoraproject.org/openh264/34/x86_64/os/repodata/repodata/repomd.xml 發現真的沒有檔案,所以試連看看網站還在不在 。由 https://codecs.fedoraproject.org/openh264/ 可以看到網站還是有正常運作的,但在檢視現行網站上的目錄結構時發現似乎多了一層 os 。於是先手動更新 /etc/yum.repos.d/fedora-cisco-openh264.repo ,將其中的 baseurl 的路徑多加了一層 os 由原本的

[fedora-cisco-openh264]
name=Fedora $releasever openh264 (From Cisco) - $basearch
baseurl=https://codecs.fedoraproject.org/openh264/$releasever/$basearch/
.....

改為

[fedora-cisco-openh264]
name=Fedora $releasever openh264 (From Cisco) - $basearch
baseurl=https://codecs.fedoraproject.org/openh264/$releasever/$basearch/os/
....

baseurl=https://codecs.fedoraproject.org/openh264/$releasever/$basearch/os/

修改完成後存檔,再做一次 dnf update ,錯誤訊息就不見了。只是不知道什麼時候會不會架構又發生異動。


dkms status 出現錯誤訊息 …/source/dkms.conf does not exist

 dkms全名為(Dynamic Kernel Module Support),其介紹可參考wiki 動態核心模支援

在執行 dkms status 確認系統內有安裝了哪些模組時若出現 .../source/dkms.conf does not exist. 的錯誤訊息。例如

$ dkms status
    nvidia/470.103.01, 5.16.5-100.fc34.x86_64, x86_64: installedError! Could not locate dkms.conf file.
    File: /var/lib/dkms/nvidia/470.74/source/dkms.conf does not exist.

    nvidia/470.103.01, 5.16.7-100.fc34.x86_64, x86_64: installed

這種情況常見 nvidia 安裝多個官方版本的驅動程式後,舊版本的驅動程式檔案不見了。

主要該 module 缺少了 dkms.conf 導致發生錯誤,也可以利用以下指令檢查 /var/lib/dkms/ 目錄下的缺少 source 目錄的 module 有哪些?[1]

for i in /var/lib/dkms/*/[^k]*/source; do [ -e "$i" ] || echo "$i";done

解決方法 - 確認 /var/lib/dkms/nvidia/470.74/ 目錄下沒有 source 的目錄後,將其刪除 - 刪除後在 /var/lib/dkms/nvidia/ 目錄下有其他 kernel 開頭的連結目錄出現指向 /var/lib/dkms/nvidia/470.74/ 而失效的情況,也將其一併刪除即可。 - 最後再執行一次 dkms status 確認是否恢復正常

參考資料 [1] https://bbs.archlinux.org/viewtopic.php?pid=1189293#p1189293

dnf upgrade fails with Error: GPG check FAILED

 OS: Fedora 36 今天在做  dnf  更新的時候,突然有很多 package 都出現簽章問題無法更新。類似如下的錯誤訊息 .... is not signed. ...... is not signed. ......... is not...