FFmpeg開發筆記(五)更新MSYS的金鑰環

aqi00發表於2024-03-16
《FFmpeg開發實戰:從零基礎到短影片上線》一書提到:使用MSYS對FFmpeg進行交叉編譯時,需要事先安裝交叉編譯工具鏈,也就是執行下面命令。
pacman -S mingw-w64-x86_64-toolchain
FFmpeg開發筆記(五)更新MSYS的金鑰環

一般情況可以正常安裝交叉編譯工具鏈,不過有時會提示錯誤“signature from "David Macek <david.macek.0@gmail.com>" is unknown trust”,這是因為MSYS安裝之後的金鑰環有效期只有150天左右,而工具鏈中的個別元件會檢查金鑰環是否有效。如果金鑰環過了150天之後才安裝工具鏈,MSYS就會報前面的錯,意思是簽名不被信任,這便是金鑰環過期導致的。
執行下面命令檢視金鑰環的有效時間。

pacman-key --list-sigs
FFmpeg開發筆記(五)更新MSYS的金鑰環

從上面命令的執行結果找到“david.macek.0@gmail.com”所在的那幾行資訊,如下所示。

pub   rsa4096 2018-01-14 [SC] [過期於:2023-04-22]
      87771331B3F1FF5263856A6D974C8BE49078F532
uid             [ 過期 ] David Macek <david.macek.0@gmail.com>
sig          790AE56A1D3CFDDC 2020-06-19  David Macek (MSYS2 master key) <david.macek.0@gmail.com>
sig          5F92EFC1A47D45A1 2020-06-23  Alexey Pavlov (Alexpux) <alexpux@gmail.com>
sig          F40D263ECA25678A 2020-06-25  Alexey Pavlov (Alexpux) <alexey.pawlow@gmail.com>
sig          755B8182ACD22879 2020-06-25  Christoph Reiter (MSYS2 master key) <reiter.christoph@gmail.com>
sig 3        974C8BE49078F532 2022-10-24  David Macek <david.macek.0@gmail.com>
FFmpeg開發筆記(五)更新MSYS的金鑰環

根據上述的金鑰環有效資訊,得知“david.macek.0@gmail.com”對應的金鑰環已於2023-04-22到期,可見確實出現了金鑰環過期的問題。
若想解決金鑰環過期的問題,要麼更新金鑰環,要麼重新安裝MSYS。採取更新金鑰環方式的話,得先到以下網址尋找msys2-keyring的最新檔案。

https://repo.msys2.org/msys/x86_64/
FFmpeg開發筆記(五)更新MSYS的金鑰環

比如找到msys2-keyring的最新檔案為msys2-keyring-1~20231013-1-any.pkg.tar.zst和msys2-keyring-1~20231013-1-any.pkg.tar.zst.sig,於是執行下面命令將這兩個簽名檔案下載到本地。如果最新檔案的日期發生變化,注意同步修改下面命令中的檔名。

curl -O https://repo.msys2.org/msys/x86_64/msys2-keyring-1~20231013-1-any.pkg.tar.zst
curl -O https://repo.msys2.org/msys/x86_64/msys2-keyring-1~20231013-1-any.pkg.tar.zst.sig
FFmpeg開發筆記(五)更新MSYS的金鑰環

等待兩個檔案下載完畢,接著執行下面命令驗證並配置金鑰環。

pacman-key --verify msys2-keyring-1~20231013-1-any.pkg.tar.zst{.sig,}
pacman -U --config <(echo) msys2-keyring-1~20231013-1-any.pkg.tar.zst
FFmpeg開發筆記(五)更新MSYS的金鑰環

上面命令的執行結果最後一行如下所示,可見金鑰環的失效時間已經延長到了2024-04-10。

gpg: next trustdb check due at 2024-04-10
FFmpeg開發筆記(五)更新MSYS的金鑰環

重新執行下面命令檢視金鑰環的有效時間。

pacman-key --list-sigs
FFmpeg開發筆記(五)更新MSYS的金鑰環

從上面命令的執行結果找到“david.macek.0@gmail.com”所在的那幾行資訊,如下所示。

pub   rsa4096 2018-01-14 [SC] [expires: 2024-04-10]
      87771331B3F1FF5263856A6D974C8BE49078F532
uid           [  full  ] David Macek <david.macek.0@gmail.com>
sig          790AE56A1D3CFDDC 2020-06-19  David Macek (MSYS2 master key) <david.macek.0@gmail.com>
sig          5F92EFC1A47D45A1 2020-06-23  Alexey Pavlov (Alexpux) <alexpux@gmail.com>
sig          F40D263ECA25678A 2020-06-25  Alexey Pavlov (Alexpux) <alexey.pawlow@gmail.com>
sig          755B8182ACD22879 2020-06-25  Christoph Reiter (MSYS2 master key) <reiter.christoph@gmail.com>
sig 3        974C8BE49078F532 2023-03-16  David Macek <david.macek.0@gmail.com>
sig 3        974C8BE49078F532 2023-10-13  David Macek <david.macek.0@gmail.com>
sub   rsa4096 2018-01-14 [E] [expires: 2024-04-10]
sig          974C8BE49078F532 2023-03-16  David Macek <david.macek.0@gmail.com>
sig          974C8BE49078F532 2023-10-13  David Macek <david.macek.0@gmail.com>
sub   rsa3072 2018-01-14 [S] [expires: 2024-04-10]
sig          974C8BE49078F532 2023-03-16  David Macek <david.macek.0@gmail.com>
sig          974C8BE49078F532 2023-10-13  David Macek <david.macek.0@gmail.com>
FFmpeg開發筆記(五)更新MSYS的金鑰環

根據上述的金鑰環有效資訊,得知“david.macek.0@gmail.com”對應的金鑰環將於2024-04-10到期,可見金鑰環的有效期果然往後延長了150天(從當天開始往後150天,不是對上個失效日期簡單相加)。更多詳細的FFmpeg開發知識參見《FFmpeg開發實戰:從零基礎到短影片上線》一書。

相關文章