yum updateでパッケージのアップデートができなくなりました。エラー内容を見るとrpmdbが壊れたらしい。
それを直します。作業自体はかんたんでコマンドを3回たたくだけなんですが、中身の理解が必要です。
(頻繁に起きることではないですが、でもそれが忘れやすい。備忘録です。)
CentOS | 7.8.2003 |
CentOSは、パッケージ(アプリ)の追加・更新・削除でyumコマンドを使います。
いつものようにyum updateを実行したら最後にこんなエラーが出ました。
rpmのDBが壊れたようです。
rpmはRedhat系OSのパッケージ管理システムで、yum以前はこれを直接操作していたのですが、yumの登場でラッピングされました。
(yumは内部でrpmを操作している。)
エラー内容は、rpm情報テーブルのリカバリをチャレンジして失敗しています。ちなみに、この状態でyum updateを実行するとやっぱりエラーになります。
リカバリでダメなら作り直しましょう。
rpm情報テーブルの退避。
rpmdbのリカバリ(再生成)。
yumコマンドでクリーン実行。
作業の内容はこれだけです。これをコマンドで実行するとこうなります。
作業は以上です。
Redhat系OSを使いはじめて10年? いやそれ以上が経っていますが、こんなことは初めてです。
もしかしたら、HDDの寿命が来たのかも?
今回これが起きたのは、VirtualBoxを使ってローカルPCに作った仮想サーバー。
レンタルサーバーやクラウドサーバーは、サービス提供会社が定期的にメンテナンスでHDDの交換をしているので、ハードが原因で起きることは稀。
勝手にHDDのせいにしてますが確証はありません。それくらい、頻繁に起きるものではないです。
VirtualBoxはバージョン6からWindows10のHyper-Vと共存できるようになりました。
でも、仮想サーバーのネットワークが不安定です。
yumはネット上のrpmリポジトリに頻繁にアクセスするので、通信が途切れて起きたのかも知れません。
※ 追記。依存性の解決エラーでも使える
yum updateの『依存性の解決』でエラーが出たときにも使えます。