AlmaLinux 8でyumやdnfが使えなくて詰まった話 ~GPGキーとは?~

はじめに

こんにちは、大野です。
弊社では、LinuxサーバのOSは、CentOS 7系までCentOSが主流でした。
しかし、CentOS 8が早々にサポート終了、その後はアップストリーム用のCentOS Streamになったため、新しいLinuxサーバのOSはAlmaLinuxが主流になってきています。

ここで、最近、検証サーバにAlmaLinux 8をインストールし、dnfコマンドを使おうとしたらエラーが出たので、この件に関してメモ書き程度に書いて行こうと思います。

前提

  • 経緯
    • 基本的な経緯は「はじめに」の通り。
    • 手始めに、digコマンドを使うためにbindとbind-utilsを入れたい。
  • 環境 (OS)
    • AlmaLinux release 8.10 (Cerulean Leopard)

dnfでbindをインストールする

普通にdnfコマンドで「bind」をインストールします。

# dnf -y install bind
AlmaLinux 8 - BaseOS                                                                                                                    6.2 MB/s | 5.1 MB     00:00
AlmaLinux 8 - AppStream                                                                                                                  11 MB/s |  12 MB     00:01
AlmaLinux 8 - Extras                                                                                                                     21 kB/s |  13 kB     00:00
依存関係が解決しました。
========================================================================================================================================================================
 パッケージ                                 アーキテクチャー                 バージョン                                       リポジトリー                        サイズ
========================================================================================================================================================================
インストール:
 bind                                       x86_64                           32:9.11.36-14.el8_10                             appstream                           2.1 M
依存関係のインストール:
 bind-libs                                  x86_64                           32:9.11.36-14.el8_10                             appstream                           175 k
 bind-libs-lite                             x86_64                           32:9.11.36-14.el8_10                             appstream                           1.2 M
 bind-license                               noarch                           32:9.11.36-14.el8_10                             appstream                           104 k
 fstrm                                      x86_64                           0.6.1-3.el8                                      appstream                            28 k
 libmaxminddb                               x86_64                           1.2.0-10.el8_9.1                                 appstream                            32 k
 protobuf-c                                 x86_64                           1.3.0-8.el8                                      appstream                            36 k
弱い依存関係のインストール:
 geolite2-city                              noarch                           20180605-1.el8                                   appstream                            19 M
 geolite2-country                           noarch                           20180605-1.el8                                   appstream                           1.0 M

トランザクションの概要
========================================================================================================================================================================
インストール  9 パッケージ

ダウンロードサイズの合計: 24 M
インストール後のサイズ: 65 M
パッケージのダウンロード:
(1/9): bind-libs-9.11.36-14.el8_10.x86_64.rpm                                                                                           2.6 MB/s | 175 kB     00:00
(2/9): bind-license-9.11.36-14.el8_10.noarch.rpm                                                                                        4.1 MB/s | 104 kB     00:00
(3/9): fstrm-0.6.1-3.el8.x86_64.rpm                                                                                                     2.3 MB/s |  28 kB     00:00
(4/9): bind-libs-lite-9.11.36-14.el8_10.x86_64.rpm                                                                                      8.2 MB/s | 1.2 MB     00:00
(5/9): bind-9.11.36-14.el8_10.x86_64.rpm                                                                                                9.1 MB/s | 2.1 MB     00:00
(6/9): libmaxminddb-1.2.0-10.el8_9.1.x86_64.rpm                                                                                         2.4 MB/s |  32 kB     00:00
(7/9): geolite2-country-20180605-1.el8.noarch.rpm                                                                                       7.9 MB/s | 1.0 MB     00:00
(8/9): protobuf-c-1.3.0-8.el8.x86_64.rpm                                                                                                1.2 MB/s |  36 kB     00:00
(9/9): geolite2-city-20180605-1.el8.noarch.rpm                                                                                           25 MB/s |  19 MB     00:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                     16 MB/s |  24 MB     00:01
AlmaLinux 8 - AppStream                                                                                                                 3.3 MB/s | 3.4 kB     00:00
GPG 鍵 0xC21AD6EA をインポート中:
 Userid     : "AlmaLinux <packager@almalinux.org>"
 Fingerprint: E53C F5EF 91CE B0AD 1812 ECB8 51D6 647E C21A D6EA
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux
鍵のインポートに成功しました
鍵をインポートしても役に立ちませんでした。鍵が間違っていませんか?
bind-9.11.36-14.el8_10.x86_64.rpm の公開鍵がインストールされていません. 失敗したパッケージは: bind-32:9.11.36-14.el8_10.x86_64
 GPG 鍵が設定されています: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux
bind-libs-9.11.36-14.el8_10.x86_64.rpm の公開鍵がインストールされていません. 失敗したパッケージは: bind-libs-32:9.11.36-14.el8_10.x86_64
 GPG 鍵が設定されています: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux
bind-libs-lite-9.11.36-14.el8_10.x86_64.rpm の公開鍵がインストールされていません. 失敗したパッケージは: bind-libs-lite-32:9.11.36-14.el8_10.x86_64
 GPG 鍵が設定されています: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux
bind-license-9.11.36-14.el8_10.noarch.rpm の公開鍵がインストールされていません. 失敗したパッケージは: bind-license-32:9.11.36-14.el8_10.noarch
 GPG 鍵が設定されています: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux
libmaxminddb-1.2.0-10.el8_9.1.x86_64.rpm の公開鍵がインストールされていません. 失敗したパッケージは: libmaxminddb-1.2.0-10.el8_9.1.x86_64
 GPG 鍵が設定されています: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux
ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保存されました。
'dnf clean packages' を実行することでキャッシュパッケージを削除できます。
エラー: GPG の確認に失敗しました

しかし、インストールに失敗!
GPGという見慣れないエラー内容が出ました。

GPGキーとは?

「GnuPG (GNU Privacy Guard)」という暗号化ソフトで生成される公開鍵で、Linuxでは、yumコマンド、dnfコマンドなどを使ってインターネットから入手できるパッケージが正しい配布先のものかどうかのチェックをするために使用しています。

エラーの原因

GPGキーの確認に失敗したと言われています。

この件に関して軽く調べてみると、2024年1月12日にAlmaLinux 8のGPGキーが新しいものに変更されたため、それをインストールする必要があるとのことでした。
https://almalinux.org/blog/2023-12-20-almalinux-8-key-update/

勿論、古いGPGキーでは認証できないので、AlmaLinux公式Webサイトの手順通り新しいGPGキーをインストールする必要があります。
と言っても、下記の一文(一コマンド)です。

rpm --import https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux

新しいGPGキーをインポート

最初に、確認コマンドを実行します。
gpg-pubkey-ced7258b-6525146f」は新しいGPGキーの名前で、このコマンドを打つことでインストールされているか確認できます。

# rpm -q gpg-pubkey-ced7258b-6525146f
パッケージ gpg-pubkey-ced7258b-6525146f はインストールされていません。

当然、インストールされていないと出ます。

公式Webサイトの手順通りインストールします。

# rpm --import https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux

確認コマンドでGPGキーの名前が出たらインストール完了です。

# rpm -q gpg-pubkey-ced7258b-6525146f
gpg-pubkey-ced7258b-6525146f

dnfでbindをインストールする (再チャレンジ)

新しいGPGキーをインストールしたので、再度dnfコマンドで「bind」をインストールしてみます。

キャッシュが残っているとインストールが上手く行えない場合もあるので、先に「dnf clean all」を実行してからインストールします。

# dnf clean all

# dnf -y install bind
AlmaLinux 8 - BaseOS                                                                                                                    6.0 MB/s | 5.1 MB     00:00
AlmaLinux 8 - AppStream                                                                                                                  11 MB/s |  12 MB     00:01
AlmaLinux 8 - Extras                                                                                                                     21 kB/s |  13 kB     00:00
依存関係が解決しました。
========================================================================================================================================================================
 パッケージ                                 アーキテクチャー                 バージョン                                       リポジトリー                        サイズ
========================================================================================================================================================================
インストール:
 bind                                       x86_64                           32:9.11.36-14.el8_10                             appstream                           2.1 M
依存関係のインストール:
 bind-libs                                  x86_64                           32:9.11.36-14.el8_10                             appstream                           175 k
 bind-libs-lite                             x86_64                           32:9.11.36-14.el8_10                             appstream                           1.2 M
 bind-license                               noarch                           32:9.11.36-14.el8_10                             appstream                           104 k
 fstrm                                      x86_64                           0.6.1-3.el8                                      appstream                            28 k
 libmaxminddb                               x86_64                           1.2.0-10.el8_9.1                                 appstream                            32 k
 protobuf-c                                 x86_64                           1.3.0-8.el8                                      appstream                            36 k
弱い依存関係のインストール:
 geolite2-city                              noarch                           20180605-1.el8                                   appstream                            19 M
 geolite2-country                           noarch                           20180605-1.el8                                   appstream                           1.0 M

トランザクションの概要
========================================================================================================================================================================
インストール  9 パッケージ

ダウンロードサイズの合計: 24 M
インストール後のサイズ: 65 M
パッケージのダウンロード:
(1/9): bind-libs-9.11.36-14.el8_10.x86_64.rpm                                                                                           2.6 MB/s | 175 kB     00:00
(2/9): bind-license-9.11.36-14.el8_10.noarch.rpm                                                                                        4.7 MB/s | 104 kB     00:00
(3/9): fstrm-0.6.1-3.el8.x86_64.rpm                                                                                                     2.0 MB/s |  28 kB     00:00
(4/9): bind-libs-lite-9.11.36-14.el8_10.x86_64.rpm                                                                                      7.9 MB/s | 1.2 MB     00:00
(5/9): bind-9.11.36-14.el8_10.x86_64.rpm                                                                                                8.5 MB/s | 2.1 MB     00:00
(6/9): libmaxminddb-1.2.0-10.el8_9.1.x86_64.rpm                                                                                         2.0 MB/s |  32 kB     00:00
(7/9): geolite2-country-20180605-1.el8.noarch.rpm                                                                                       7.3 MB/s | 1.0 MB     00:00
(8/9): protobuf-c-1.3.0-8.el8.x86_64.rpm                                                                                                1.3 MB/s |  36 kB     00:00
(9/9): geolite2-city-20180605-1.el8.noarch.rpm                                                                                           23 MB/s |  19 MB     00:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                     16 MB/s |  24 MB     00:01
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                                                                                1/1
  インストール中   : protobuf-c-1.3.0-8.el8.x86_64                                                                                                                  1/9
  インストール中   : fstrm-0.6.1-3.el8.x86_64                                                                                                                       2/9
  インストール中   : bind-license-32:9.11.36-14.el8_10.noarch                                                                                                       3/9
  インストール中   : geolite2-country-20180605-1.el8.noarch                                                                                                         4/9
  インストール中   : geolite2-city-20180605-1.el8.noarch                                                                                                            5/9
  インストール中   : libmaxminddb-1.2.0-10.el8_9.1.x86_64                                                                                                           6/9
  scriptletの実行中: libmaxminddb-1.2.0-10.el8_9.1.x86_64                                                                                                           6/9
  インストール中   : bind-libs-lite-32:9.11.36-14.el8_10.x86_64                                                                                                     7/9
  インストール中   : bind-libs-32:9.11.36-14.el8_10.x86_64                                                                                                          8/9
  scriptletの実行中: bind-32:9.11.36-14.el8_10.x86_64                                                                                                               9/9
  インストール中   : bind-32:9.11.36-14.el8_10.x86_64                                                                                                               9/9
  scriptletの実行中: bind-32:9.11.36-14.el8_10.x86_64                                                                                                               9/9
  検証             : bind-32:9.11.36-14.el8_10.x86_64                                                                                                               1/9
  検証             : bind-libs-32:9.11.36-14.el8_10.x86_64                                                                                                          2/9
  検証             : bind-libs-lite-32:9.11.36-14.el8_10.x86_64                                                                                                     3/9
  検証             : bind-license-32:9.11.36-14.el8_10.noarch                                                                                                       4/9
  検証             : fstrm-0.6.1-3.el8.x86_64                                                                                                                       5/9
  検証             : geolite2-city-20180605-1.el8.noarch                                                                                                            6/9
  検証             : geolite2-country-20180605-1.el8.noarch                                                                                                         7/9
  検証             : libmaxminddb-1.2.0-10.el8_9.1.x86_64                                                                                                           8/9
  検証             : protobuf-c-1.3.0-8.el8.x86_64                                                                                                                  9/9

インストール済み:
  bind-32:9.11.36-14.el8_10.x86_64    bind-libs-32:9.11.36-14.el8_10.x86_64    bind-libs-lite-32:9.11.36-14.el8_10.x86_64    bind-license-32:9.11.36-14.el8_10.noarch
  fstrm-0.6.1-3.el8.x86_64            geolite2-city-20180605-1.el8.noarch      geolite2-country-20180605-1.el8.noarch        libmaxminddb-1.2.0-10.el8_9.1.x86_64
  protobuf-c-1.3.0-8.el8.x86_64

完了しました!

無事インストールできました。

続いて、digコマンドを使うために「bind-utils」をインストールします。

# dnf -y install bind-utils
メタデータの期限切れの最終確認: 0:01:11 時間前の 2024年07月19日 13時59分40秒 に実施しました。
依存関係が解決しました。
========================================================================================================================================================================
 パッケージ                              アーキテクチャー                  バージョン                                        リポジトリー                         サイズ
========================================================================================================================================================================
インストール:
 bind-utils                              x86_64                            32:9.11.36-14.el8_10                              appstream                            452 k
依存関係のインストール:
 python3-bind                            noarch                            32:9.11.36-14.el8_10                              appstream                            151 k
 python3-ply                             noarch                            3.9-9.el8                                         baseos                               110 k

トランザクションの概要
========================================================================================================================================================================
インストール  3 パッケージ

ダウンロードサイズの合計: 713 k
インストール後のサイズ: 1.9 M
パッケージのダウンロード:
(1/3): python3-ply-3.9-9.el8.noarch.rpm                                                                                                 1.8 MB/s | 110 kB     00:00
(2/3): python3-bind-9.11.36-14.el8_10.noarch.rpm                                                                                        2.2 MB/s | 151 kB     00:00
(3/3): bind-utils-9.11.36-14.el8_10.x86_64.rpm                                                                                          5.0 MB/s | 452 kB     00:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                    574 kB/s | 713 kB     00:01
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                                                                                1/1
  インストール中   : python3-ply-3.9-9.el8.noarch                                                                                                                   1/3
  インストール中   : python3-bind-32:9.11.36-14.el8_10.noarch                                                                                                       2/3
  インストール中   : bind-utils-32:9.11.36-14.el8_10.x86_64                                                                                                         3/3
  scriptletの実行中: bind-utils-32:9.11.36-14.el8_10.x86_64                                                                                                         3/3
  検証             : python3-ply-3.9-9.el8.noarch                                                                                                                   1/3
  検証             : bind-utils-32:9.11.36-14.el8_10.x86_64                                                                                                         2/3
  検証             : python3-bind-32:9.11.36-14.el8_10.noarch                                                                                                       3/3

インストール済み:
  bind-utils-32:9.11.36-14.el8_10.x86_64                    python3-bind-32:9.11.36-14.el8_10.noarch                    python3-ply-3.9-9.el8.noarch

完了しました!

こちらも無事インストールできました。

digコマンドを実行します。

# dig a blog.denet.co.jp

; <<>> DiG 9.11.36-RedHat-9.11.36-14.el8_10 <<>> a blog.denet.co.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11597
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: f401880a9217925f5b7448f16699f5fc72b71eef9eeb30d9 (good)
;; QUESTION SECTION:
;blog.denet.co.jp.              IN      A

;; ANSWER SECTION:
blog.denet.co.jp.       60      IN      A       13.230.154.25

;; AUTHORITY SECTION:
denet.co.jp.            60      IN      NS      dns.sendmail.ne.jp.
denet.co.jp.            60      IN      NS      dns2.sendmail.ne.jp.

;; ADDITIONAL SECTION:
dns.sendmail.ne.jp.     4605    IN      A       121.83.205.1
dns2.sendmail.ne.jp.    4633    IN      A       218.251.116.222

;; Query time: 9 msec
;; SERVER: ***.***.***.***#53(***.***.***.***)
;; WHEN: 金  7月 19 14:01:36 JST 2024
;; MSG SIZE  rcvd: 170

無事実行することができました。

まとめ

AlmaLinux 8のサポート期限は2029年まであります。
まだサポート期限まで5年くらいあり、レポジトリも更新されるはずなのにdnfが使えないのは不思議でした。

調べてみると、原因はGPGキーと知り、勉強になりました。
今回は安全に新しいGPGキーをインポートする方法を取っていますが、GPGキーの認証を無視して実行する方法もありますが、この場合は自己責任になります。

AlmaLinux 8のGPGキーは2024年1月12日に新しいものに変更されています。
もし、AlmaLinuxでdnfやyumに失敗したならば、この方法をお試し頂ければと思います。

おわりに

私の前回の記事で軽く予告していた「自宅にVPN環境を構築してみた」の記事が引き続き執筆中ですが、最近別件でぶち当たったことがあったため、今回さらっと記事にしてみました。

VPNの記事は時間掛かっていますが、今頑張って書いています!

さて、今回は暑い夏にはぴったりな涼しげな写真を。
カレンダー通りで仕事をしているならば、5月初旬のゴールデンウィークが終わると次の国民の祝日は7月の海の日です。
6月は国民の祝日が無いので、かなり空きます。

そんな海の日。
私は今年の海の日は家で休んでいたのですが、その前日と前々日7月13~14日は、暑い夏でも涼しさを感じる自然豊かな田舎に友達と遊びに行ってきました。

日本で唯一の飛び地の村「和歌山県東牟婁郡北山村」。
北山村の名物と言えば、花粉症に効くと話題の柑橘類「邪払(じゃばら)」と、観光筏下りです!

全国の多くの綺麗な渓谷や有名な川に川下りはあるものの筏下りはここだけ。
水は綺麗で冷たくて気持ち良く、急流ポイントはエキサイティングで楽しいのは勿論のこと、村の歴史や伝統産業にも触れる筏下りでした。

北山村、大阪本社と同じ近畿地方ながら遠い場所ですが、都会の喧騒を忘れてリフレッシュしたいならば心からおススメします!

では…。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA