Ubuntuでパッケージをインストール・アップグレードしていると、まれに次のようなトラブルに遭遇することがあります:
依存関係が壊れています
Unable to correct problems, you have held broken packages.
apt install
が失敗する!
これは壊れた依存関係(Broken Dependencies)が原因で発生する、Linux初心者にとっては少し厄介なトラブルです。
この記事では、apt
コマンドを使って壊れた依存関係を修復する方法を、やさしく手順付きで解説します。
壊れた依存関係とは?
パッケージが正しくインストールされていなかったり、必要な他のパッケージが見つからなかったりすると、「依存関係が壊れた状態」になります。
主な原因:
- パッケージのインストールが途中で中断された
- 強制的なインストール・削除(
dpkg -i
などの直接操作) - リポジトリの不整合(異なるリポジトリの混在)
- 古い/互換性のないバージョンの混在
- システムアップグレード中の問題発生
典型的なエラーメッセージ:
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages
E: Broken packages
E: Unable to correct problems, you have held broken packages.
依存関係の修復に使う主なコマンド

方法1:--fix-brokenで自動修復
sudo apt --fix-broken install
このコマンドは、壊れている依存関係を修正するために必要なパッケージのインストールや削除を自動で行ってくれます。
多くの場合、これだけで問題が解決します。
方法2:dpkgで手動確認+aptで修復
1. 壊れたパッケージの確認
sudo dpkg --configure -a
→ 未設定のパッケージを再構成します。
インストールが中断されたパッケージの設定を完了させることができます。
2. システムの更新状態をリセット
sudo apt update
→ パッケージリストを更新し、利用可能なバージョンを最新にします。
3. 依存関係の自動修復
sudo apt --fix-broken install
→ 壊れた依存関係を修復します。
4. ロックがかかっている場合
もし「Could not get lock」エラーが出る場合:
#下記コマンドを1つずつ実行
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock*
sudo dpkg --configure -a
方法3:パッケージを一時的に削除してリセット
問題を引き起こしているパッケージがわかっている場合は、それを一時的に削除するのも効果的です:
sudo apt remove パッケージ名
sudo apt autoremove
その後、必要に応じて再インストールします:
sudo apt install パッケージ名
エラーメッセージ別の対処法

held broken packages の場合
sudo apt install -f
-f
は「fix」の略で、破損したパッケージ構成を自動修復します。apt
のエラーメッセージがどのパッケージに問題があるか示している場合は、そのパッケージを一時的に削除してみましょう。
Could not get lock エラー
- 他のパッケージ操作が動いている可能性があります。以下の順番で試してみましょう:
- ほかのapt/aptitude/Synapticなどが実行中でないか確認
- それでも解決しない場合:
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo dpkg --configure -a
Unable to locate package エラー
パッケージが見つからない場合:
sudo apt update
sudo apt install パッケージ名
それでも見つからない場合は、必要なリポジトリが有効になっているか確認しましょう。
詳細な診断と修復プロセス

より複雑な問題の場合は、以下の手順で診断と修復を行います:
ステップ1:問題のあるパッケージを特定
sudo apt update
エラーメッセージを注意深く読んで、問題のあるパッケージ名をメモします。
ステップ2:パッケージの詳細情報を確認
apt-cache policy パッケージ名
これにより、インストール可能なバージョンとその出所(リポジトリ)が表示されます。
ステップ3:競合しているパッケージを特定・修復
sudo apt install パッケージ名=バージョン
特定のバージョンを指定してインストールすることで、競合を解決できることがあります。
ステップ4:リポジトリのPPA追加が原因の場合
sudo add-apt-repository --remove ppa:問題のリポジトリ
sudo apt update
問題のリポジトリを無効化して、標準リポジトリからパッケージをインストールします。
最後の手段:SynapticやGUIツールで修復
コマンド操作が難しい場合は、SynapticパッケージマネージャーというGUIツールを使って修復も可能です。
sudo apt install synaptic
インストール後、Synapticを起動します:
- メニューから「Synapticパッケージマネージャー」を選択
- 「編集」→「壊れたパッケージを修復」を選択
- 画面の指示に従って修復を行う
これにより、視覚的に問題を特定し解決できます。
依存関係のトラブルを予防するには
予防策:
- 非公式リポジトリの追加は慎重に行う
- パッケージのインストール・削除は適切なコマンドで行う
- システムアップデートを定期的に行う
- 複数のパッケージマネージャを混在させない(aptとaptitudeなど)
- アップグレード中は絶対に電源を切らない
まとめ
壊れた依存関係の修復は、Ubuntuでトラブルに直面したときの重要な対処スキルです。
よく使う修復コマンドまとめ
目的 | コマンド例 |
---|---|
依存関係の自動修復 | sudo apt --fix-broken install |
構成エラーの再設定 | sudo dpkg --configure -a |
強制修復(エラー時) | sudo apt install -f |
パッケージ削除&再インストール | sudo apt remove パッケージ名 / sudo apt install パッケージ名 |
GUIツールで修復 | sudo apt install synaptic |
システム全体のアップグレード | sudo apt update && sudo apt full-upgrade |
トラブルシューティングの基本的な流れ:
- エラーメッセージを確認して問題を特定
apt --fix-broken install
で自動修復を試みる- 特定のパッケージが問題なら、一時的に削除して再インストール
- より複雑な問題なら、
dpkg
コマンドで深掘りする - それでも解決しない場合はSynapticなどのGUIツールを使用
少しずつ操作に慣れて、安定したUbuntuライフを手に入れましょう!
依存関係の問題は初心者にとっては難しく感じますが、この記事の手順に従えば、ほとんどの問題は解決できるはずです。
システムの健全性を保つために、定期的なメンテナンスも忘れないようにしましょう。
コメント