web-dev-qa-db-ja.com

PPAを追加した後、満たされていない依存関係を解決するにはどうすればよいですか?

時々、ものをインストールしているときに、次のようなエラーが表示されます。

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 package1 : Depends: package2 (>= 1.8) but 1.7.5-1ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.

どうすれば解決できますか?

536
jrg

APTは、Debianおよびそれに基づいたUbuntuなどの他のLinuxディストリビューション用のパッケージ管理システムです。ほとんどの場合、APTはパッケージのインストール、削除、更新に簡単に使用できます。まれに、サードパーティの依存関係が混在している場合が多く、apt-getがパッケージのインストールを完了できなかったというエラーを表示する可能性があります。

ソリューション:

/etc/apt/sources.listなどの構成ファイルをバックアップすることは常に良い考えです。必要に応じて変更を元に戻すことができます。

  • errorが次のように表示される場合:

    <some-package>: Depends: <other-package> (= version) but this-version is to be installed

    次に、restrictedおよびuniverseリポジトリーが有効になっていることを確認します。ヒット Alt+F2software-properties-gtkと入力してヒット Enter

    Ubuntu Softwareタブで、すべてのリポジトリを有効にします。

  • 依存関係が満たされていない原因の1つとして、パッケージデータベースの破損や、一部のパッケージが適切にインストールされなかったことが考えられます。この問題を修正するには、 Alt+Ctrl+T ターミナルを開いて、次のコマンドのいずれかを実行します。

    Sudo apt-get clean

    または、

    須藤apt-get autoclean

    apt-get cleanは、取得したパッケージファイル(.debファイル)のローカルリポジトリをクリアします。ロックファイルを除くすべてを/ var/cache/apt/archives /および/ var/cache/apt/archives/partial /から削除します。 apt-get autocleanは、取得したパッケージファイルのローカルリポジトリをクリアしますが、apt-get cleanとは異なり、ダウンロードできなくなり、ほとんど役に立たないパッケージファイルのみを削除します。

  • 依存関係の問題を解決するための最も基本的な修正の1つは、次を実行することです。

    須藤apt-get -fインストール

    ここの-fは、「壊れた修正」を表します。 Aptは、破損した依存関係の修正を試みます。依存関係が満たされていないパッケージを手動でインストールした場合、apt-getは可能であればそれらの依存関係をインストールします。そうでない場合、問題を解決するためにインストールしたパッケージを削除します。

    次に実行します:

    Sudo dpkg --configure -a

    次に、これを再度実行します。

    須藤apt-get -fインストール

    出力が次の場合:

    0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

    それは失敗したことを意味します。

  • 次の解決策は実行することです:

    須藤apt-get -u dist-upgrade

    保留中のパッケージが表示されている場合は、それらを削除することをお勧めします。パッケージは、aptが解決できない依存関係の競合のために保持されます。このコマンドを試して、競合を見つけて修復します。

    Sudo apt-get -o Debug :: pkgProblemResolver = yes dist-upgrade

    競合を解決できない場合、次のコマンドで終了します。

    0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.

    保留パッケージがなくなるまで、保留パッケージを1つずつ削除し、毎回dist-upgradeを実行します。次に、必要なパッケージを再インストールします。結果について十分に通知されるように、必ず--dry-runオプションを使用してください。

    Sudo apt-get remove --dry-run package-name

    インストールしようとしているパッケージを削除することは理想的ではない場合があるため、依存関係を満たすために必要なパッケージを含むリポジトリを見つけることもできます。

最後に、他のすべてが失敗した場合、必要なパッケージを見つけてインストールするか、ソースからインストールしてから「 deb 」パッケージを作成することで、自分で依存関係を満たそうとすることができます。

PPAの無効化/削除/削除:

PPA(個人パッケージアーカイブ)は、 Launchpad でホストされるリポジトリです。 PPAを使用して、公式のUbuntuリポジトリにないパッケージをインストールまたはアップグレードできます。

満たされていない依存関係の最も一般的な原因の1つは、特にUbuntuリポジトリ内の既存のパッケージをアップグレードするために使用される場合、PPAです。この問題を解決するには、無効化、パージ(Ubuntuリポジトリの元のパッケージに戻す)、またはPPAの削除の3つのオプションがあります。

  • 無効:

    PPAを無効にすると、そのPPAからインストールされたパッケージの更新が不要になります。 PPAを無効にするには:Software Center > Edit > Software Sourcesまたはを開きます。

    ヒット Alt+F2 software-properties-gtkを実行します。

    Other Softwareタブをクリックすると、PPAを無効にするために、各PPAに2つの行があり、1つはコンパイル済みパッケージ用、もう1つはソース用、Uncheck行であることがわかります。ここで、PPAを追加および削除することもできます。

  • パージ:

    PPAのパージとは、選択したPPAのパッケージを公式のUbuntuリポジトリのバージョンにダウングレードし、そのPPAを無効にすることを意味します。 PPA Purge はまさにそれを行います。 PPAパージをインストールするには、次のコマンドを実行します。

    Sudo apt-get install ppa-purge

しかし、質問aptが壊れていると考えると、上記のコマンドは失敗します。したがって、このコマンドを使用してください

mkdir ppa-purge && cd ppa-purge && wget http://mirror.pnl.gov/ubuntu/pool/universe/p/ppa-purge/ppa-purge_0.2.8+bzr56_all.deb && wget http://mirror.pnl.gov/ubuntu//pool/main/a/aptitude/aptitude_0.6.6-1ubuntu1_i386.deb && Sudo dpkg -i ./*.deb

PPAパージを使用するには:

Sudo ppa-purge ppa:someppa/ppa

「ppa-purge」コマンドが何らかの理由で失敗した場合、PPAを再度有効にしない限り、「ppa-purge」を再度実行することはできません(PPAを有効にするには、PPAとCheckの両方の行を無効にするのと同じ手順に従います有効にする特定のPPA)。

注:PPA PurgeはPPAを削除しません( 将来的には )。したがって、PPAを手動で削除する必要があります。

  • 削除:

    PPAからインストールされたパッケージがUbuntuの公式リポジトリに存在しない場合は、PPA Purgeを使用することはお勧めしません。ダウングレードするものがなく、PPA Purgeも削除しないためです。 PPAとインストール済みパッケージを削除するには、次のコマンドを実行します(インストール済みパッケージを削除しない場合は、最初のコマンドを無視します)。

     sudo apt-get autoremove --purgeパッケージ名
     sudo add-apt-repository --remove ppa:someppa/ppa 
     Sudo apt-get autoclean 
    

または、Y PPA Managerを使用して、PPAを無効化/削除/削除できます(詳細は回答の最後にあります)。

予防措置:

それでは、そもそもこれがどのように発生するのを避けることができますか?

  • Ubuntuを最新の状態に保ちます。 Ubuntuは、更新が利用可能になると自動的に通知します。また、UnityパネルでSession Indicatorをクリックして、利用可能な更新を確認することもできます。

    または、ヒット Alt+Ctrl+T ターミナルを開き、次のコマンドを実行します。

    Sudo apt-get update 
     Sudo apt-get upgrade

    更新:利用可能なパッケージのリストをソースリポジトリのサーバーと同期します。アップグレード:インストールされているパッケージの新しいバージョンをダウンロードしてインストールします。

  • Sources.listに他のリポジトリを追加することにした場合、そのリポジトリがUbuntuで動作する(および動作することがわかっている)ことを確認してください。 Ubuntuのバージョンで動作するように設計されていないリポジトリは、システムに不整合をもたらし、再インストールを強制する可能性があります。また、探しているソフトウェアパッケージが既に公式リポジトリに導入されている可能性があるため、外部リポジトリを本当に追加する必要があることを確認してください! ソース
  • 重複したPPAを削除します。 Y PPA Manager(回答の最後にあるインストールガイド)は、重複するPPAを簡単にスキャンして削除できます。

    • ヒット Alt+F2 y-ppa-managerを実行してY PPA Managerを開きます。
    • 開いたら、ダブルクリックまたはヒット Enter Advancedに。
    • 結果のウィンドウでScan and remove duplicate PPAsを選択し、[OK]をクリックします。

enter image description here

ヘルプの取得:

Askubunt または他のヘルプフォーラムでヘルプを求めるときは、質問に次のコマンドの出力を含める必要があります。

  • 実際のエラーの出力:

    Sudo apt-get install package-name
  • これにより、sources.listが表示されます。

    cat /etc/apt/sources.list
  • これにより、PPAのリストが表示されます(存在する場合):

    cat /etc/apt/sources.list.d/*

追加ソース:


Y PPAマネージャーY PPAマネージャーは、PPAのすべてのニーズに対応するワンストップショップです。

y ppa manager

その機能の一部を次に示します。

  • すべてのLaunchpad PPAでパッケージを検索する
  • pPAのパッケージのリストとダウンロード
  • pPAの追加/削除/パージ
  • pPAソースのバックアップと復元
  • 重複したPPAソースを削除する

Y PPA Managerをインストールするには、ヒットしてターミナルを開きます Alt+Ctrl+T 次のコマンドを実行します。

 sudo add-apt-repository ppa:webupd8team/y-ppa-manager 
 sudo apt-get update 
 sudo apt-get install y-ppa-manager 

質問を考えると、aptは壊れているので、代わりにこれらのコマンドを使用してください

Sudo su

そして

32ビット:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_i386.deb && dpkg -i ./*.deb

64ビット:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_AMD64.deb && dpkg -i ./*.deb
558
Basharat Sialvi

注:実行するように要求されたすべてのコマンドは、ターミナルで実行する必要があります。 Ctrl+Alt+T またはダッシュで端末を検索します。

本当に壊れていますか?

次のコマンドを実行して、インストールしようとしていたソフトウェアを再インストールしてみてください

Sudo apt-get update

パフォーマンス前の手順

バックアップ

次のファイルをバックアップします。

  • /etc/apt/sources.list
  • /var/lib/dpkg/status

これを行うには、次のコマンドを使用します

Sudo cp /etc/apt/sources.list /etc/apt/sources.list.original

そして

Sudo cp /var/lib/dpkg/status /var/lib/dpkg/status.original

Apt-cacheをクリアする

aptは、インストールする必要があるときに帯域幅を節約するために、最近ダウンロードしたパッケージのキャッシュを保持します。これは場合によっては逆効果になる可能性があります

今、それをきれいにするために、2つのオプションがあります

Sudo apt-get clean 

これにより、.lockファイルを除く、フォルダー/var/cache/apt/archives/および/var/cache/apt/archives/partialに属するすべてのキャッシュパッケージが削除されます。これがお勧めです

Sudo apt-get autoclean

これは/var/cache/apt/archives/および/var/cache/apt/archives/partialフォルダーをスキャンし、パッケージがまだリポジトリにあるかどうかを確認し、そうでないものを削除します


依存関係の修正

Aptのfix-brokenモードを使用する

Sudo apt-get -f install

これにより、aptが不足している依存関係をスキャンし、リポジトリから修正します。

出力に新しいものがインストールまたはアップグレードされていないことが示されている場合は、失敗しています。


必要なソースがすべて有効になっているかどうかを確認する

gksu software-properties-gtkと入力すると、このウィンドウが表示されます

すべてのソースが有効になっていることを確認してください。

次に、[その他のソフトウェア]タブに移動して、インストールするソフトウェアに必要なPPAが存在し、有効になっているかどうかを確認します。また、壊れたパッケージを持っている可能性のあるいくつかのPPAを無効にしてみてください

今、Sudo apt-get updateを実行します

今すぐソフトウェアをインストールしてみてください

より良いサーバーを選択してダウンロードする

gksu software-properties-gtkと入力すると、このウィンドウが表示されます

ドロップダウンボックスからダウンロードをクリックして、その他を選択します

[ベストサーバーの選択]をクリックします。

Sudo apt-get updateを実行します

ソフトウェアをインストールしてみてください

また、Sudo apt-get install -fを使用してみてください


PPAパージ

これは、壊れた/不要なPPAとそのアプリケーションをパージするために使用されるツールです

それをインストールするには、実行します

Sudo apt-get install ppa-purge

しかし、質問aptが壊れていると考えると、上記のコマンドは失敗します。したがって、このコマンドを使用してください

mkdir ppa-purge && cd ppa-purge && wget http://mirror.pnl.gov/ubuntu/pool/universe/p/ppa-purge/ppa-purge_0.2.8+bzr56_all.deb && wget http://mirror.pnl.gov/ubuntu//pool/main/a/aptitude/aptitude_0.6.6-1ubuntu1_i386.deb && Sudo dpkg -i ./*.deb

次に、PPAパージを使用します

Sudo ppa-purge ppa:someppa/ppa  

Y-PPAマネージャー

Y-PPA Managerは、PPAとそれに関連するさまざまな問題を管理するのに役立つGUIアプリです

インストールする

Sudo add-apt-repository ppa:webupd8team/y-ppa-manager

そして

Sudo apt-get update

そして

Sudo apt-get install y-ppa-manager

質問を考えると、aptは壊れているので、代わりにこれらのコマンドを使用してください

Sudo su

そして

32ビット:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_i386.deb && dpkg -i ./*.deb

64ビット:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_AMD64.deb && dpkg -i ./*.deb

y-ppa-managerと入力します

このウィンドウが表示されます

[詳細]をダブルクリックすると、このウィンドウが表示されます

黒で説明されている次のタスクを実行します


治療よりも予防​​が大切です

AskUbuntuでこの質問を検索するよりも防ぐ方が良いです:D

だから、ここにあなたを安全に保つためのガイドラインがあります

システムを最新の状態に保つ

常に定期的に次のコマンドを実行します

Sudo apt-get update&&Sudo apt-get upgrade

または、常にこのコマンドでUpdate Managerを使用できます

gksu update-manager

信頼できるPPAのみを使用する

Ubuntuでも使用することを意図したPPAのみを使用し、信頼できるソースでのみPPAを使用します。実際、パッケージはすでにubuntuリポジトリにある可能性があります

状況が良いときにバックアップし、後で復元する

このためには、Y-PPA-Managerが必要です。インストール手順は上記のとおりです。

このコマンドを実行してY-PPA-Managerを開きます

y-ppa-manager

このウィンドウが表示されます

[詳細]をダブルクリックすると、このウィンドウが表示されます

これを実行します:

次のようなダイアログでtar.gzファイルを保存するように求められます。別のパーティションまたは安全な場所に保存してください

後で、再度復元する必要がある場合は、同様の手順を実行し、詳細ダイアログが表示されたら、これをクリックします。

以下のようなダイアログで、以前に保存した以前のバックアップから復元するように求められます


まだ動作していません?

パッケージの依存関係エラーは常に一般的なものではなく、インストールするパッケージに依存します。

エラーを修正するために指定されたすべての手順を実行してもうまくいかない場合は、常に Ask Ubunt

以下は、次の出力を投稿するために必要なコマンドです。

Sudo apt-get install packagename

そして

cat /etc/apt/sources.list

そして

cat /etc/apt/sources.list.d/*

Basharat Sial に感謝)

エラー固有の出力を必要とする他のファイル/コマンドもあり、ユーザーはおそらくコメントでファイル/コマンドを投稿するように促します。

87
Amith KK

これらの回答はこれまでのところ、そのような問題を自動的に解決する方法に焦点を当てており、主にそれ自体が解決することを期待していますが、依存関係の調査方法の理解には焦点を当てていません。パッケージリストが最新であることを確認するなどのことを試すことが重要です。簡単に更新したり、キャッシュをクリアしても問題を解決してから掘り下げる必要があるからです。ただし、背後ですべてが正常に機能している場合は、依存関係を理解する方法を学ぶことが最も重要です。依存関係の層が圧倒的に見えることもありますが、概念はシンプルであり、Ubuntuシステムでソフトウェアをインストール/アンインストールする方法を理解するための鍵となります。

Ubuntuのような.debベースのシステムを使用している人には aptitude を強くお勧めします。そのツリー構造により、推奨パッケージや推奨パッケージなどの依存関係を簡単に参照したり、競合や満たされていない依存関係を視覚化したりできます。これは、apt-getが単純なソリューションを提供しない場合や、一般的な依存関係を視覚化するための貴重なツールです。 ( Synaptic はUbuntuでも使用できますが、直感的ではありません。)

Aptitudeはまた、競合/問題なくすべての要件を満たすために、インストール/削除/アップグレード/などのパッケージのすべての可能な組み合わせを順を追って説明する競合リゾルバーを提供します。これは、aptが解決策を見つけることができない場合でも成功する可能性があります。 Ubuntuユーザーとしては、通常、その特定のパッケージがインストールされている理由を調査する必要がある状況は発生しませんが、システムをさらに使用するにつれてほとんど避けられません。

38
overprescribed

package1:依存:package2(> = 1.8)が1.7.5-1ubuntu1がインストールされる

メッセージの説明:

  1. インストールを完了するには、package1にpackage2が必要です。
  2. package2はバージョン1.8以降で使用可能である必要があります
  3. パッケージマネージャーはすべてのリポジトリをチェックし、インストール可能なバージョン1.7.5-1ubuntu1のみを検出しました。バージョン1.8未満のため実行できません。

修正する

この質問に対する単一の正しい答えはありませんし、簡単な答えもありません。

これが発生する可能性のあるシナリオは多数あり、すべてのオプションを調査し、このエラーにつながる前提条件を解決する必要があります。

シナリオA:

アクセスできるすべてのリポジトリには、1.8以上のバージョンのpackage2がないため、存在するリポジトリを見つける必要があります。バージョンが1.8以上のリポジトリが見つからない場合は、ソースからpackage2をビルドしてインストールする必要があります。そして、package1のインストールを試みます。

ソースからパッケージをビルドする方法を知りたい場合は、他の質問/回答を確認するか、新しい質問/回答を投稿してください。

シナリオB:

リポジトリには、1.8以上のバージョンのpackage2が含まれていますが、パッケージマネージャーは古いバージョン(1.7.5)のインストールを引き続き望んでいます。

これは、package2の新しいバージョンが、インストール済みの他のパッケージではサポートされていない新しいテクノロジーによってビルドされたためかもしれません。

これはまったく修正できない可能性があります。 aptまたはsynapticを使用して、リポジトリで利用可能なpackage2のすべてのバージョンを探し、特定のバージョン> = 1.8をインストールしようとすることができます。

他の互換性のないパッケージがあり、これを行うと、package2> = 1.8のインストールを妨げる他のすべてのパッケージについて同様のエラーメッセージのリストが表示されます。

この場合、より大きな問題があります。 package1をインストールする場合、package2は1.8以上である必要がありますが、package2のバージョン1.8以上ではpackage3のバージョンが6.7以上で、package3バージョン6.3が必要です。

問題は、可能な場合、パッケージマネージャー(APT)がこれらすべての依存関係を自動的に解決しようとすることです。それが不可能であると言うとき(そして質問のようなメッセージを発行するとき)、あなたはそれを信頼するべきです。

パッケージマネージャーを信頼しないことを決定し、問題がないと確信している場合は、すべてのパッケージの特定の必要なバージョンを1つずつ強制的にインストールして、問題がないことを望みます。

システムパッケージに対してこれを行うと、深刻な問題が発生する可能性があることに注意してください。システムからロックアウトしたり、重要なサービスをブロックしたりできます。

シナリオC:

問題の理由に関係なく、手動コンパイル用にいつでもセットアップし、必要なパッケージと、ソースからの必要な正確なバージョンのすべての依存関係をビルドできます。このオプションを使用すると、システムとの競合が発生しないように、構築したものを別のディレクトリに保存し、システムパスから除外できます。これはおそらく最もクリーンなソリューションであり、場合によっては高速化することもできます。

シナリオD:

パッケージマネージャーは、パッケージに関する古い情報にアクセスできるため、ソリューションを見つけることができません。他の答えを見てください。

シナリオE:

パッケージマネージャーには、依存関係解決コードにバグがあります。

これが実際に事実であることを調査してから、バグリクエストを発行する必要があります。

...

シナリオZ:

他のシナリオがあるかもしれません。

たとえば、パッケージメンテナーが間違っている可能性があり、package1がpackage2 <1.8のバージョンでも動作することを確認しなかったため、仕様では誤った依存関係を設定していました。

24

これらのメソッドは、Unmet Dependenciesに関してエラーが発生する場合は常に従う必要があります

指示に従って、ソフトウェアをインストールしてみてください。これらのメソッドの少なくとも1つshould

1。新しいコマンドを試す前、または新しいPPAを追加する前に、これを試してください

aptキャッシュのクリーンアップ:

Sudo apt-get clean

未使用の依存関係のクリーンアップ:

Sudo apt-get autoremove

apt-cacheの更新

Sudo apt-get update

これにより、すべてのキャッシュが削除され、新しいキャッシュがダウンロードされます。これは、新しいキャッシュパッケージと新しい更新を取得するために実行する必要があります。

2Sudo apt-get install -fを試してください。

おそらくパッケージの削除とインストールに関するいくつかの提案がありますが、妥当と思われることを行ってください。

。サーバー上のファイルが破損している場合があるため、Download ServerSoftware Sourcesから変更します。

enter image description here
enter image description here
enter image description here

4。これは、破損した依存関係の外部PPAを以前に追加した場合にも発生します。

  • Sudo add-apt-repository --remove ppa:someppa/ppaと入力してから、ppaのインストール済みファイル/ライブラリを手動で削除する

または

  • pPAのパージ(これにより、インストールされているファイルも削除されます)

    Sudo apt-get install ppa-purge   #a one time install 
    Sudo ppa-purge ppa:someppa/ppa  
    

5。 4が当てはまらない場合は、破損した依存関係として表示されているパッケージを少なくとも削除してみてください。その後、インストールを再試行してください。

6。リポジトリ/ PPAの安定バージョンを常に追加します。

enter image description here

7また、すべての公式リポジトリが有効になっていることを確認してください(Software Sourcesで)

enter image description here

Proposed Updatesはテスト/開発者向けであるため、有効にしないでください。

enter image description here


ダグが言ったように:

通常、これを解決するための最良の最初のステップは、<pkg1>および<pkg2>のソースを識別することです。

さらに、ほとんどの場合ではないにしても、多くの場合、「<whatever>をインストールする」とは「<whatever>をインストールする」ことを意味し、他に何も機能しない場合は削除する必要があります(ポイント5のように)。


unmet dependenciesを修正するために、見つけにくいものをさらに追加していきます。

17
Ashu

私の答えは、上記のrickに似ています。

apt-get cleanapt-get autocleanapt-get autoremoveapt-get upgradeapt-get updateapt-get -u dist-upgradeなどの使用はすべてうまくいきませんでした。

最後に、apt-get installを介して依存関係ツリーに降りて、この問題を解決しました。以下に例を示します。私の場合、libmagickwand-devをインストールしたかった:

apt-get install libmagickwand-dev

私はこのエラーを受け取りました:

The following packages have unmet dependencies:
 libmagickwand-dev : Depends: libmagickcore4-extra (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed
                     Depends: libmagickcore-dev (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed

そこで、失敗した依存関係の1つに対してapt-get installを実行しました。

apt-get install libmagickcore-dev

The following packages have unmet dependencies:
 libmagickcore-dev : Depends: libmagickcore4-extra (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed
                     Depends: libgraphviz-dev but it is not going to be installed

さらにツリーを下っていきました。

apt-get install libgraphviz-dev

別のエラー:

The following packages have unmet dependencies:
 libgraphviz-dev : Depends: libgvc5 (= 2.26.3-10ubuntu1) but it is not going to be installed

ツリーのさらに深いところまで:

apt-get install libgvc5

何らかの奇妙な理由で、これは成功し、私はapt-get install libmagickwand-devで必要な元のパッケージをインストールできました。

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libcdt4 libgd2-xpm libgraph4 libpathplan4
Suggested packages:
  libgd-tools
The following NEW packages will be installed:
  libcdt4 libgd2-xpm libgraph4 libgvc5 libpathplan4
0 upgraded, 5 newly installed, 0 to remove and 2 not upgraded.
Need to get 808 kB of archives.
After this operation, 2,320 kB of additional disk space will be used.
Do you want to continue [Y/n]?
11
Michael Franzl

素晴らしい答えです!しかし、今日、私の場合はあなたのものとは異なるようです。これが私のアドバイスです。

問題:

Ubuntu 2.10。にApache2をインストールできませんでした。

rick@wen-VirtualBox:~$ Sudo apt-get install Apache2

Reading package lists... Done

Building dependency tree      

Reading state information... Done

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.

The following information may help to resolve the situation:

The following packages have unmet dependencies:

 Apache2 : Depends: Apache2-mpm-worker (= 2.2.16-1ubuntu3) but it is not going to be installed or

                    Apache2-mpm-prefork (= 2.2.16-1ubuntu3) but it is not going to be installed or

                    Apache2-mpm-event (= 2.2.16-1ubuntu3) but it is not going to be installed or

                    Apache2-mpm-itk (= 2.2.16-1ubuntu3) but it is not going to be installed

           Depends: Apache2.2-common (= 2.2.16-1ubuntu3) but it is not going to be installed

E: Broken packages

解決:

私の方法は、依存パッケージをインストールリストに追加することです。

「Sudo apt-get install Apache2」が失敗した場合は、「Sudo apt-get install Apache2 Apache2.2-common」を試してください。

見る? Apache2.2-commonは、前のステップのエラーログから取得されます。

最後に、次のような依存関係チェーンがあることがわかりました。

 Apache2.2-common <-- Apache2.2-bin <-- libaprutil1-ldap <-- libaprutil1

最初の3つのパッケージについて、apt-get logは「インストールされません」と表示しました。

しかし、最後のパッケージについては、「libaprutil1-ldap:Depends:libaprutil1(= 1.3.9 + dfsg-3build1)but 1.3.9 + dfsg-3ubuntu0.10.10.1がインストールされる」と表示されます

私のライブラリには異なるバージョンが存在するため、次のようにします。

Sudo apt-get remove libaprutil1

Sudo apt-get install Apache2

今は大丈夫です。

8
rick

満たされていない依存関係エラーとは

Ubuntuのパッケージは、ソフトウェアを構築、展開、インストールする主要な方法です。非常に簡単に言えば、パッケージは、ソフトウェアを最初からダウンロード、ビルド、インストールするための代替手段です。これらは、標準の「ソースからビルド」モデルに比べて、ソフトウェア間の相互作用のインストール、削除、監視、および処理に関して多くの利点を提供します。 Ubuntuは集中パッケージングシステムを使用します。つまり、すべてのパッケージは他のパッケージに依存しています。パッケージをインストールすると、その依存関係がインストールされます。パッケージの依存関係をインストールできない場合、unmet依存関係エラーが発生します

考えられる原因

1.Computer is not connected to the Internet
2.The repository containing the depandancy package is not enabled
3.Package catalog is not updated
4.The version of the depandancy in the current repository is old
5.Software index is broken
6.The depandancy is not available for ubuntu

TRyで解決しましょう

  1. インターネットへの接続:D
  2. すべてのデフォルトリポジトリが有効になっていることを確認してください

    -> Software Center-> Edit-> Software Sources-> Other Sources-> Addで簡単に追加できます」

    -> Software Centerを開始します。

    ->。パネルでEditに移動し、Software Sourcesを選択します。

    edit-software-sources

    ->すべてのリポジトリがチェックされていることを確認してください enter image description here

  3. ソフトウェアカタログを更新します

    右上のアイコンをクリックして、メニューで更新可能なエントリを選択します
    enter image description here

そして、チェックボタンを押します enter image description here

4.タイプ ctrl+alt+t ターミナルを開いてSudo apt-get install -fと入力します

5. ppa-purge ppa-purgeを使用して、最近追加されたppaをパージしますInstall ppa-purge

このプログラムは、ソフトウェアソースからPPAを無効にし、システムを公式のUbuntuパッケージに戻します。これを使用して、PPAから新しいバージョンをテストした後、システムを通常に戻すことができます。

構文

Sudo ppa-purge ppa:<repository-name>/<subdirectory>

Sudo ppa-purge ppa:ubuntu-mozilla-daily/ppa
  1. ソフトウェアセンターを開き、ソフトウェアのインストールを試みます。次のダイアログボックスが表示された場合は、修復ボタンを押して待機します

enter image description here

Elseタイプ ctrl+alt+t ターミナルを開いてSudo apt-get install -fと入力し、画面の指示に従います

それでもエラーが発生する場合は、お気軽に askbunt でお問い合わせください

7
Tachyons

... `build-dep`を忘れないでください

上記の答えに加えて、私はapt-getの競合や未解決のパッケージ(またはさらにはシステムが頑固な場合.... ha!)。

編集:Sudo dpkg -r [package]の使用は、かなり強力な除去機能があるため、推奨されます。 apt-getdpkgと一緒に機能するため、apt-getdpkg関数に従います。

  Sudo dpkg -r [package]
  Sudo apt-get build-dep [package]  
  ## pre-install all deps for the package

Apt-getを呼び出して、システムにインストールしようとして失敗したパッケージをパージし、次にbuild-depコマンドを呼び出します。apt-getは、このパッケージに属する依存関係を個別に取得してインストールします。パッケージの事前。最後に、apt-get installを呼び出します。

Sudo apt-get install [package]

.... 'うーん! 「おじさん!」と叫ぶまで腕をひねりましょう」

これは、長年のLinuxの使用ではめったに起こりませんでしたが、このアプローチを使用することはめったになく、成功しました。これは、パッケージmysql-client/mysql-serverを使用した1か月前の最近の闘争の例です。 mysql-serverを使用したルートパスワードのリセットに数十回失敗した後(--skip-grant-tables techqiueを使用しても失敗しました)、ついに「Uncle!」と叫ぶまでLinuxの腕をねじることに成功しました。

Sudo dpkg -r mysql-server mysql-client
Sudo apt-get autoclean  
## this dumps any copy of existing package to prevent apt-get from "re-using" it.
Sudo apt-get build-dep mysql-client   
 ## one package at a time, starting with client first
Sudo apt-get install mysql-client
Sudo apt-get build-dep mysql-server
Sudo apt-get install mysql-server

apt-get autocleanはこのソリューションのキーです

5
Faron

64ビットMultiarch Ubuntuシステムへのi386パッケージのインストール中

多くのi386パッケージに依存するパッケージをインストールしようとしている場合、Sudo dpkg --add-architecure i386コマンドを実行してi386アーキテクチャを追加できないと、上記の依存関係エラーも発生します。

例:

avinash@avinash-Lenovo-IdeaPad-Z500:~$ Sudo apt-get install skype
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 skype : Depends: skype-bin but it is not installable
E: Unable to correct problems, you have held broken packages.
avinash@avinash-Lenovo-IdeaPad-Z500:~$ Sudo dpkg --add-architecture i386
avinash@avinash-Lenovo-IdeaPad-Z500:~$ Sudo apt-get install skype
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  gcc-4.8-base:i386 gcc-4.9-base:i386 libasound2:i386 libasound2-plugins:i386
  libasyncns0:i386 libaudio2:i386 libavahi-client3:i386
  libavahi-common-data:i386 libavahi-common3:i386 libc6:i386
  libcgmanager0:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386
  libdbusmenu-qt2:i386 libdrm-intel1:i386 libdrm-nouveau2:i386
  libdrm-radeon1:i386 libdrm2:i386 libelf1:i386 libexpat1:i386 libffi6:i386
  libflac8:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386
  libgcrypt11:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386
  libglapi-mesa:i386 libglib2.0-0:i386 libgnutls26:i386 libgpg-error0:i386
  libgssapi-krb5-2:i386 libgstreamer-plugins-base1.0-0:i386
  libgstreamer1.0-0:i386 libice6:i386 libjack-jackd2-0:i386 libjbig0:i386
  libjpeg-turbo8:i386 libjpeg8:i386 libjson-c2:i386 libk5crypto3:i386
  libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 libllvm3.4:i386
  liblzma5:i386 libmysqlclient18:i386 libnih-dbus1:i386 libnih1:i386
  libogg0:i386 liborc-0.4-0:i386 libp11-kit0:i386 libpciaccess0:i386
  libpcre3:i386 libpng12-0:i386 libpulse0:i386 libqt4-dbus:i386
  libqt4-declarative:i386 libqt4-network:i386 libqt4-opengl:i386
  libqt4-script:i386 libqt4-sql:i386 libqt4-sql-mysql:i386 libqt4-xml:i386
  libqt4-xmlpatterns:i386 libqtcore4:i386 libqtdbus4:i386 libqtgui4:i386
  libqtwebkit4:i386 libsamplerate0:i386 libselinux1:i386 libsm6:i386
  libsndfile1:i386 libspeexdsp1:i386 libsqlite3-0:i386 libssl1.0.0:i386
  libstdc++6:i386 libtasn1-6:i386 libtiff5:i386 libtinfo5:i386
  libtxc-dxtn-s2tc0:i386 libudev1:i386 libuuid1:i386 libvorbis0a:i386
  libvorbisenc2:i386 libwrap0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386
  libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386
  libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386
  libxfixes3:i386 libxi6:i386 libxml2:i386 libxrender1:i386 libxshmfence1:i386
  libxslt1.1:i386 libxss1:i386 libxt6:i386 libxv1:i386 libxxf86vm1:i386
  mysql-common skype-bin:i386 sni-qt:i386 zlib1g:i386
Suggested packages:
  nas:i386 glibc-doc:i386 locales:i386 rng-tools:i386 libglide3:i386
  gnutls-bin:i386 krb5-doc:i386 krb5-user:i386 libvisual-0.4-plugins:i386
  gstreamer-codec-install:i386 gnome-codec-install:i386
  gstreamer1.0-tools:i386 gstreamer1.0-plugins-base:i386 jackd2:i386
  pulseaudio:i386 libqt4-declarative-folderlistmodel:i386
  libqt4-declarative-gestures:i386 libqt4-declarative-particles:i386
  libqt4-declarative-shaders:i386 qt4-qmlviewer:i386 libqt4-dev:i386
  libicu48:i386 libthai0:i386 qt4-qtconfig:i386
Recommended packages:
  xml-core:i386
The following NEW packages will be installed:
  gcc-4.8-base:i386 gcc-4.9-base:i386 libasound2:i386 libasound2-plugins:i386
  libasyncns0:i386 libaudio2:i386 libavahi-client3:i386
  libavahi-common-data:i386 libavahi-common3:i386 libc6:i386
  libcgmanager0:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386
  libdbusmenu-qt2:i386 libdrm-intel1:i386 libdrm-nouveau2:i386
  libdrm-radeon1:i386 libdrm2:i386 libelf1:i386 libexpat1:i386 libffi6:i386
  libflac8:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386
  libgcrypt11:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386
  libglapi-mesa:i386 libglib2.0-0:i386 libgnutls26:i386 libgpg-error0:i386
  libgssapi-krb5-2:i386 libgstreamer-plugins-base1.0-0:i386
  libgstreamer1.0-0:i386 libice6:i386 libjack-jackd2-0:i386 libjbig0:i386
  libjpeg-turbo8:i386 libjpeg8:i386 libjson-c2:i386 libk5crypto3:i386
  libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 libllvm3.4:i386
  liblzma5:i386 libmysqlclient18:i386 libnih-dbus1:i386 libnih1:i386
  libogg0:i386 liborc-0.4-0:i386 libp11-kit0:i386 libpciaccess0:i386
  libpcre3:i386 libpng12-0:i386 libpulse0:i386 libqt4-dbus:i386
  libqt4-declarative:i386 libqt4-network:i386 libqt4-opengl:i386
  libqt4-script:i386 libqt4-sql:i386 libqt4-sql-mysql:i386 libqt4-xml:i386
  libqt4-xmlpatterns:i386 libqtcore4:i386 libqtdbus4:i386 libqtgui4:i386
  libqtwebkit4:i386 libsamplerate0:i386 libselinux1:i386 libsm6:i386
  libsndfile1:i386 libspeexdsp1:i386 libsqlite3-0:i386 libssl1.0.0:i386
  libstdc++6:i386 libtasn1-6:i386 libtiff5:i386 libtinfo5:i386
  libtxc-dxtn-s2tc0:i386 libudev1:i386 libuuid1:i386 libvorbis0a:i386
  libvorbisenc2:i386 libwrap0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386
  libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386
  libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386
  libxfixes3:i386 libxi6:i386 libxml2:i386 libxrender1:i386 libxshmfence1:i386
  libxslt1.1:i386 libxss1:i386 libxt6:i386 libxv1:i386 libxxf86vm1:i386
  mysql-common skype skype-bin:i386 sni-qt:i386 zlib1g:i386
0 upgraded, 115 newly installed, 0 to remove and 7 not upgraded.
Need to get 63.7 MB of archives.
After this operation, 225 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
3
Avinash Raj

私のために働いたのは、依存関係を再インストールすることです。インストールされたバージョンが最新のものよりも新しい場合です(シナプスが示すもの)。実際には、シナプスが依存関係パッケージをダウングレードできるようにすることと同等です。

うまくいったもう1つのことは、「適性」を使用することです。

root@arau:~# aptitude install libgfortran3
The following NEW packages will be installed:
  libgfortran3{b} 
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 250 kB of archives. After unpacking 1 230 kB will be used.
The following packages have unmet dependencies:
 libgfortran3 : Depends: gcc-4.8-base (= 4.8.2-19ubuntu1) but 4.8.4-2ubuntu1~14.04 is installed.
Internal error: found 2 (choice -> promotion) mappings for a single choice.
The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     libgfortran3 [Not Installed]                       



Accept this solution? [Y/n/q/?] n
Internal error: found 2 (choice -> promotion) mappings for a single choice.
Internal error: found 2 (choice -> promotion) mappings for a single choice.
The following actions will resolve these dependencies:

      Downgrade the following packages:                                        
1)      cpp-4.8 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
2)      gcc-4.8 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
3)      gcc-4.8-base [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]  
4)      libasan0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      
5)      libatomic1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]    
6)      libgcc-4.8-dev [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]
7)      libgomp1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      
8)      libitm1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
9)      libquadmath0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]  
10)     libstdc++6 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]    
11)     libtsan0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      

Accept this solution? [Y/n/q/?] y
1
Bob Yoplait

このスレッド(および他のスレッド)で言及されているすべてのメソッドに近づいた後、私はあきらめようとしていました。私はDebian LennyをSqueezeにアップグレードしましたが、PHP5、Apache、MySQLなどがインストールしたくない理由を私は一生理解できませんでした。最後に私は使用しようとしました

Sudo apt-get purge Apache2
Sudo apt-get purge php5
Sudo apt-get purge mysql-server
Sudo apt-get clean
Sudo apt-get autoremove
Sudo apt-get install Apache2 php5 mysql-server

..そしてそれは完璧に機能しました! (注意してください、might設定ファイルを破壊するので、バックアップしてください!

1
h2ooooooo

このようなエラーが発生した場合:
enter image description here

これは、パッケージが既にインストールされていることを示していますが、動作する必要がある他のすべてのパッケージをインストールしていません。これを実行することでこれを解決できるはずです:

Sudo apt-get -f install

(このコマンドは、満たされていない依存関係を自動的にインストールする必要があります。)

またはこのようなもの(関連するパッケージを使用)

Sudo apt-get install click curl dpkg-dev python-lzma python-requests imagemagick ubuntu-dev-tools

しかし、この種のエラーが発生した場合: cannot install package/package not available/no installation candidate etc

その後、それらをインストールする方法を検索できます here または here
上記の例では、 this のようなページを見つけてから a PPA を使用するか、 a .debをインストールします。 32ビットの場合 、または 64ビットの場合は.deb

0
Wilf