Skip to Content

一般的な症状

  • apt install が「依存関係が満たされていない」と報告する
  • dpkg が中断されたため、インストールを続行できません
  • 「壊れたパッケージを保持しています」というメッセージが表示される
  • パッケージのステータスが「半分インストール済み」または「半分構成済み」です
Note

ほとんどのパッケージの問題は、最初の 3 つの手順 (dpkg --configure -a、apt --fix-broken install、apt update && apt upgrade) で解決できます。急いで高度な修復方法を使用しないで、順番に試してください。

標準的な修理手順

次の手順を順番に試してください。通常、最初のいくつかの手順で問題は解決します。

ステップ 1: 中断された dpkg を修正する

sudo dpkg --configure -a

ステップ 2: 依存関係を修正する

sudo apt --fix-broken install

ステップ 3: アップデートとクリーンアップ

sudo apt update sudo apt upgrade sudo apt autoremove sudo apt autoclean

高度な修復

修正パッケージを強制する

# View problematic packages dpkg -l | grep -E "^..[^i ]" # Force reinstall a package sudo apt install --reinstall PACKAGE_NAME # Force remove a broken package sudo dpkg --remove --force-remove-reinstreq PACKAGE_NAME

パッケージキャッシュをクリアする

# Delete all downloaded package cache sudo apt clean # Delete only outdated packages sudo apt autoclean # Manual cleanup sudo rm /var/cache/apt/archives/*.deb sudo rm /var/cache/apt/archives/partial/*.deb

dpkgロックを修正

「管理ディレクトリをロックできません」というメッセージが表示された場合:

# Check if other apt/dpkg processes are running ps aux | grep -E "apt|dpkg" # If you confirm no other processes are running, delete the lock files sudo rm /var/lib/dpkg/lock-frontend sudo rm /var/lib/dpkg/lock sudo rm /var/cache/apt/archives/lock sudo dpkg --configure -a

dpkgデータベースを再構築する

dpkg データベースが破損する極端な場合:

# Back up existing database sudo cp -r /var/lib/dpkg /var/lib/dpkg.backup # Restore the status file from the system's daily backup (status is dpkg's core database) ls -t /var/backups/dpkg.status.* # List available backup snapshots sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status # .0 is newest; use an older snapshot if needed sudo dpkg --clear-avail sudo apt update

依存関係の競合のトラブルシューティング

パッケージの依存関係を表示する

# View dependencies of a package apt depends PACKAGE_NAME # View which packages depend on a package apt rdepends PACKAGE_NAME # Simulate installation to see conflicts apt install -s PACKAGE_NAME

PPA によって引き起こされる紛争

サードパーティの PPA は、依存関係の競合の一般的な原因です。

# List added PPAs grep -rh "^deb " /etc/apt/sources.list.d/ | sort # Disable a problematic PPA sudo add-apt-repository --remove ppa:xxx/yyy # Downgrade PPA-installed packages to official versions sudo apt install ppa-purge sudo ppa-purge ppa:xxx/yyy

バージョン保持の競合

# View held packages apt-mark showhold # Unhold a package sudo apt-mark unhold PACKAGE_NAME

Snap パッケージの問題

# View snap status snap list # Fix snap sudo snap refresh # Reinstall a problematic snap sudo snap remove PACKAGE_NAME sudo snap install PACKAGE_NAME

最後の手段

上記の方法がいずれも機能しない場合は、次のことを試してください。

# Completely reinstall the package management system (use with caution) sudo apt install --reinstall dpkg apt # Or use aptitude for interactive conflict resolution sudo apt install aptitude sudo aptitude install PACKAGE_NAME # aptitude will offer multiple solutions to choose from

予防のヒント

  1. 信頼できないサードパーティ PPA の追加を避ける
  2. 異なる Ubuntu バージョンのソフトウェア ソースを混合しないでください。
  3. 定期的に実行される sudo apt update && sudo apt upgrade
  4. apt install -s を使用してインストールをシミュレートし、競合を確認します
  5. システム パッケージのバージョンを一貫した状態に保ちます。システム パッケージをオーバーライドする .deb ファイルを手動でインストールすることは避けてください。