リポジトリとパッケージがあり、Fedora 39の対応するリポジトリからインストールしたいと思います。
このリポジトリはここで使用されます(テスト目的でバケット名ubuntuを無視してください。これにはrpmリポジトリが含まれています)。https://storage.googleapis.com/repotestubuntu2204作成してcreaterepo
パッケージは、生成されたキー(RSA 4096ビット、パスワードなし、有効期限なし)を介してsample_project-1.3.5-1.fc39.x86_64.rpm
C hello worldによって署名されます。rpm --addsign
gpg --gen-key
このリポジトリを追加
dnf config-manager --add-repo https://storage.googleapis.com/repotestubuntu2204/sample_project.repo
Adding repo from: https://storage.googleapis.com/repotestubuntu2204/sample_project.repo
問題ないようです。さて、パッケージをインストールしてみてください。
dnf install -yv sample_project
...
Using rpmkeys executable at /usr/bin/rpmkeys to verify signatures
Package sample_project-1.3.5-1.fc39.x86_64.rpm is not signed
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Error: GPG check FAILED
したがって、パッケージが署名されていないことを知らせ、それを確認するためにrpmkeyを使用しています。さて、rpm自体をダウンロードして署名を確認してください。
wget https://storage.googleapis.com/repotestubuntu2204/sample_project-1.3.5-1.fc39.x86_64.rpm
rpmkeys -Kv sample_project-1.3.5-1.fc39.x86_64.rpm
sample_project-1.3.5-1.fc39.x86_64.rpm:
Header SHA256 digest: OK
Header SHA1 digest: OK
Payload SHA256 digest: OK
MD5 digest: OK
gpg importとrpm --importを試しましたが、役に立ちません。私が知る限り、b/cしてはいけません。 .repoファイルにgpgkeyへのリンクがあり、リポジトリを追加したときに正常にインポートされたようです。 。
同じプログラムを使用してopenSUSE用に構築されたrpmはうまく機能し、zypperはリポジトリを追加し、公開鍵を信頼する必要があります。それがすべてです。しかし、Fedoraはキーを信頼するかどうかを尋ねないので、やや受賞しました。ただし、キーファイルを手動でダウンロードしてインポートすることも役に立ちません。
yum installでも同じエラーが発生します。 rpm -iは問題なく動作します。署名に問題がありますか?
答え1
調べました。 Fedoraのrpm署名のデバッグ中に署名コマンドを--showrc
有効にするオプションを追加しましたが、rpm --showrc --verbose --addsign *.rpm
ヘッダーに署名していないことがわかりました。rpm --addsign *.rpm
働く