Linux Mint 22 でのパッケージ依存関係エラーに遭遇&解決の手順

プログラミング

はじめに

Linux Mintを使っていて、aptコマンドでのパッケージ管理に慣れてきたころ。
ある日、Google Chromeをインストールしようとしたら、まさかの依存関係エラーに直面した。こんな経験、ないだろうか?

普通にインストールすればいいだけじゃないのか?
エラーの指示通りにしても一向に解消されない…

そんな行き詰まりを、筆者自身が実際に体験した。
今回は、その泥沼のようなトラブルからどう抜け出したのかを記録として残しておきたい。同じような状況に悩む誰かの道標になれば幸いである。

スポンサーリンク
スポンサーリンク

Google Chromeインストール時に突如現れた依存地獄

舞台はLinux Mint 22。Google Chromeのdebパッケージをダウンロードし、sudo dpkg -iでインストールを試みたときのこと。画面に表示されたエラーメッセージは、どこか既視感のあるやつだった。

E: 未解決の依存関係です。'apt --fix-broken install' を実行してみてください
以下のパッケージには満たせない依存関係があります:
linux-image-5.4.0-97-generic : 依存: linux-modules-5.4.0-97-generic しかし、インストールされようとしていません

なるほど、--fix-brokenで修復しろということか。経験者なら思わず「またか」と呟きたくなる内容だろう。

しかし問題は、ここからが長かったという点に尽きる。

あれこれ試した修復作業の全記録

1. まずは公式のアドバイス通りに

sudo apt --fix-broken install

これで終わるなら記事にするまでもなかった。結果、失敗。どうやら該当パッケージの内部ファイルに破損があるようで、dpkgがエラーを返していた。

dpkg-deb: エラー: <伸張> subprocess returned error exit status 2

お手上げか…?いや、まだ策はある。

2. キャッシュの削除で環境を一掃

インストールキャッシュが悪さしているかもしれないという仮説のもと、以下を実行。

sudo apt clean
sudo apt autoclean

これで依存関係がクリアになることもあると知人のエンジニアから聞いた。しかし、今回の症状には無力だった。

3. 問題のパッケージを手動でダウンロード・インストール

エラー文に登場した linux-modules-5.4.0-97-generic をUbuntuの公式リポジトリから直接取得し、dpkgでインストールを試みた。

wget http://archive.ubuntu.com/ubuntu/pool/.../linux-modules-5.4.0-97-generic.deb
sudo dpkg -i linux-modules-5.4.0-97-generic.deb

…結果は同じ。アーカイブ自体が壊れているのか、展開処理で失敗してしまう。八方塞がりの気配が漂いはじめた。

4. システム全体をアップデートしてみたら…

最終手段として、Mint全体のアップデートを実施。

sudo apt update && sudo apt upgrade
sudo dpkg --configure -a

すると、あっさり依存関係が解消された。まるで何事もなかったかのようにChromeのインストールが完了した。まるで、家中探し回っていた鍵が冷蔵庫の上にポンと置かれていた、そんな気分だった。

成功への近道は、案外シンプルかもしれない

今回の対応から得た教訓は、以下の4ステップに要約される。

  1. sudo apt --fix-broken install をまず試す。
  2. sudo apt clean で環境をクリーンに。
  3. 該当パッケージを手動で再インストール。
  4. ダメなら全体のアップデートを。

この順番で進めることで、大抵の依存関係トラブルには対応できる。とはいえ、システムが深く壊れている場合は、この限りではない。

まとめ

Linux Mintは、そのユーザーフレンドリーさで知られる一方、Ubuntu由来の複雑な依存関係も引き継いでいる。そのせいか、パッケージ関連のトラブルはつきものだ。

だが、だからこそ面白い。失敗して、調べて、試して、うまくいったときの達成感は何にも代えがたい。
Mintに限らず、Linux系OSを使う上で大切なのは「壊れたら直す」精神である。トラブルは敵ではない。進化の入り口だ。

コメント