Linux
 Computer >> コンピューター >  >> トラブルシューティング >> Linux

【解決法】「/var/lib/dpkg/status を開けません」エラーの直し方

Linuxで「could not open file /var/lib/dpkg/status」(/var/lib/dpkg/status ファイルを開けませんでした)というエラーに遭遇することがあります。これは、rootユーザーとして /var/lib/dpkg/ ディレクトリ内を操作している際に、うっかりファイルを削除してしまった場合などに発生します。

Linux Filesystem Hierarchy Standard(FHS)によれば、/var 以下のファイルの多くは一時的なもので、システムの稼働中に内容が変化します。しかし、だからといってWebブラウザのキャッシュのように定期的に削除すべきというわけではありません。

ほとんどのLinuxユーザーはこのディレクトリを直接触る必要がないため、このエラーを目にすることはまずありません。また、FedoraやArch Linuxなどapt-getを使用しないディストリビューションでは、このエラーは一切発生しません。このエラーはaptパッケージマネージャー固有のものだからです。それでもこのエラーに悩まされている場合は、以下の対処法を順番に試してみてください。

方法1:突然発生したエラーへの対処

エラーが何の前触れもなく発生した場合は、まずターミナルで次のコマンドを実行し、statusファイルが存在するかどうかを確認しましょう。

ls /var/lib/dpkg/status

GUI操作が好みであれば、グラフィカルなファイルマネージャーで該当ディレクトリを開いて確認しても構いません。

出力結果に /var/lib/dpkg/status という行が表示されれば、ファイルは存在しています。通常、このコマンドは /var/lib/dpkg/status とだけ表示してプロンプトに戻ります。ファイルが確認できたなら、作業中のアプリケーションを保存してすべて終了し、システムを再起動してください。

再起動後、ターミナルで以下のコマンドを順番に実行します。

sudo apt-get update
sudo apt-get upgrade

途中で管理者パスワードの入力を求められるので、入力して進めてください。アップデートが完了すれば問題は解決しているはずです。ただし、処理中に奇妙なエラーメッセージが表示されないか、注意深く見守っておきましょう。

もしstatusファイル自体が存在しなかった場合は、次の方法を試す必要があります。

方法2:/var/lib/dpkg/status の再作成

この段階で重要なデータをバックアップしてからLinuxを再インストールするユーザーもいますが、その前に復旧を試す価値は十分にあります。実は /var/lib/dpkg/status には自動的にバックアップコピーが作成されており、エラー発生からあまり時間が経っていなければ、そのバックアップから復元できる可能性があります。

ターミナルで次のコマンドを実行してみてください。

sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status

エラーが表示されなければ、これで問題が解決したかどうかを確認できます。このコマンドは、最新のバックアップコピーからstatusファイルを復元します。ただし、バックアップが古すぎる場合には、依存関係の不整合が残る恐れがあります。

その後、システムを再起動して sudo apt-get update、続いて sudo apt-get upgrade を実行し、どのような依存関係エラーが発生するかを確認しましょう。最良のケースでは、エラーは一切発生せず、通常どおりシステムを使い続けられます。

statusリストの再構築

statusリストをゼロから再構築する方法もあります。sudo touch /var/lib/dpkg/status を実行してroot権限で空のファイルを作成し、その後 sudo apt-get install コマンドで必要なパッケージを1つずつインストールしていきます。この作業を自動化するスクリプトもいくつか存在しますが、基本的な処理は同じであり、手動で行えば潜在的に古いスクリプトを実行するリスクを避けられます。ただしこの方法では、システムに何がインストールされているかを自分で把握しておく必要がある点に注意してください。

さらに、ls /var/backups/dpkg.status* を実行すると、利用可能なバックアップファイルの一覧が表示されます。

表示されたリストを確認し、圧縮されていないファイルがあれば、sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status を実行して復元を試みてください。圧縮されたファイルの場合は、コピーした上で gunzip コマンドを使って展開することも可能です。

ただし、古いバックアップに戻れば戻るほど、廃止された情報を含むファイルを復元してしまい、壊れた依存関係を引き起こすリスクが高まる点には留意してください。

  1. Windows 10でDS4Windowsが開かない問題を解決する方法

    DS4Windowsは、PlayStationのコントローラー(DualShock 3、DualShock 4、DualSense)をPCに接続して使用できるようにする、無料のポータブルプログラム兼仮想エミュレーターです。このツールを使えば、PlayStationコントローラーで遊べるPCゲームが大幅に増え、さらにキーやボタンのリマップ(割り当て変更)も自由に行えます。PCゲーマーにとって非常に便利なツールですが、まれに「プログラムが開けない」というトラブルが発生することがあります。 本記事では、DS4Windowsが開かない原因と、その解決方法をわかりやすく解説します。同じ問題でお困りの方

  2. AndroidでWhatsAppのステータスが表示されない問題を解決する13の方法

    WhatsAppは、個人間でもグループでもテキストメッセージを楽しめる、最も人気のあるインスタントメッセージアプリの一つです。すべてのメッセージは携帯電話会社の回線ではなくインターネット経由で送受信され、マルチメディアコンテンツの共有、位置情報の送信、GIFの送信、ビデオ通話・音声通話、ステータスの投稿や閲覧、スタンプや絵文字の送信など、魅力的な機能が満載です。WhatsApp自体は2009年にリリースされましたが、写真やリンクの送信、ステータス設定の機能は2017年に大幅に刷新されました。ネット上では「友達のWhatsAppステータスが自分に表示されない」「WhatsAppでステータスが見え