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


540

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

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.

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


33
正確なパッケージ名を忘れてください。この質問とは無関係です。私は標準的な質問を作成しようとしています。そのため、この特定のインスタンスでは正確なパッケージは関係ありません。
jrg

33
実際、「正確なパッケージ名」は、質問には関係ありませんが、この点で個人の問題に非常に関連しています。通常、これを解決するための最良の最初のステップは、pkg1とpkg2のソースを特定することです。これは回答で見落とされているようですが、それ以外のほとんどはかなり良いです。さらに、ほとんどの場合ではありませんが、多くの場合、「<whatever>をインストールする」とは、「<whatever>をインストールする」ことを意味します。これは、これに直面する多くのユーザーを混乱させる傾向があるものであり、以下の回答にも含める必要があります
12

5
@dougコメントではなく回答として追加してください。:)
jrg

1
@Braiam Whaaaatにはポイントがありますが、質問はPPAに固有のものではなく、かなりの数の回答もそうではありません。上位2つの回答が他の回答を少し圧倒することはわかっていますが、特に他の回答を無効にするため、質問の性質を変更することが正しい解決策であるかどうかはわかりません。より良い答えはありませんが、今は考えてみてください。
セス

2
ああ、トラブルシューティングの質問はどこにありますか?:D
セス

回答:


561

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+ F2、種類software-properties-gtkとヒットをEnter

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

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

    sudo apt-get clean

    または、

    sudo apt-get autoclean

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

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

    sudo apt-get -f install

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

    次に実行します:

    sudo dpkg --configure -a

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

    sudo apt-get -f install

    出力が次の場合:

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

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

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

    sudo 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.

    保留中のパッケージdist-upgradeがなくなるまで、保留中のパッケージを1つずつ削除します。次に、必要なパッケージを再インストールします。--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に2行が表示されます。1行はコンパイル済みパッケージ用、もう1 Uncheck行はソース用で、両方ともPPAを無効にします。ここで、PPAを追加および削除することもできます。

  • パージ:

    PPAのパージとは、選択したPPAのパッケージを公式のUbuntuリポジトリのバージョンにダウングレードし、そのPPAを無効にすることを意味します。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

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

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

  • 削除する:

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

    sudo apt-get autoremove --purge package-name
    sudo add-apt-repository --ppa:someppa / ppaを削除します
    sudo apt-get autoclean
    

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

予防措置:

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

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

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

    sudo apt-get update
    sudo apt-get upgrade

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

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

    • ヒットAlt+ F2と実行y-ppa-managerY PPA Managerを開きます。
    • 一度、開いてダブルクリックするか、ヒットEnterAdvanced
    • 結果のウィンドウで選択しScan and remove duplicate PPAs、[OK]をクリックします。

ここに画像の説明を入力してください

ヘルプの取得:

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

  • 実際のエラーの出力:

    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マネージャー

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

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

をインストールするにはY PPA ManagerAlt+ 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

3
aptが破損している場合にアンメットデパンダンシーをインストールする方法
タキオン

4
これは私にとって大きな助けでした... Lubuntu 12.04の新規インストールで、gvim(vim-gtk)やopenssh-serverなどの基本的なものをインストールできませんでした。文字通り、このマシンと別のマシン(Xubuntuを実行して正常に動作するマシン)から/etc/apt/sources.listの差分を実行するなど、あらゆる種類のコマンドラインオプションを試しました。このガイドに従った後、software-properties-gtkで、「メイン」リポジトリのボックスがオフになっていることがわかりました。問題が解決しました!
memilanuk

1
壊れたパッケージを実際に保持している場合があります...そのため、最善の方法は、パッケージを保持解除して削除することです。参照してくださいaskubuntu.com/a/363244/16395
Rmano

3
依存関係のバージョンが満たされていないパッケージをインストールする方法について実際に答えた人はいません。神!古いバージョンのパッケージを強制的にインストールしたいだけです。
海兵隊14年

3
これは私にはうまく
いき

87

注:実行するように要求されたすべてのコマンドは、ターミナルで実行する必要があります。ターミナルは、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 

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

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 Ubuntuでいつでも確認できます。

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

sudo apt-get install packagename

そして

cat /etc/apt/sources.list

そして

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

Basharat Sialに感謝)

また、エラー固有の出力が必要な他のファイル/コマンドもあり、ユーザーはおそらくファイル/コマンドを投稿するためにコメントでプロンプトを表示します。


私はかけることになりapt-get update、リストの上部付近。システムによっては、1つの新しいパッケージがリモートで更新される更新が行われた場合もありますが、依存するパッケージはまだビルドが完了していません。または、ローカルキャッシュにあるバージョンが更新されています。これらの場合、単純なapt-get update方法でローカルキャッシュが更新され、続行できます。
ハミッシュダウナー

1
一流の答え!aptやdpkgがこれらのスタック状態にならないように、またはそれらを解決するのに優れていることを確認するために、より良い保護が必要だと思います。私は以前にこの問題を抱えていましたが、それをapt-get install -f修正しなかったときはかなりイライラしました。
ジェフウェリング

また、次の警告を含めることもできます。「PPAが有効になっている間はシステムをアップグレードしないでください。最初に無効にしてからアップグレードしてください」。 。システム全体をより低いバージョン番号にダウングレードすることはできず、標準リポジトリから何かをインストールすることはできません。標準リポジトリからのパッケージはインストールされているPPAパッケージと競合します。
アンワー

2
私のために修正されたより良いサーバーを選択してください。ありがとうございました!
ホアンフイン

-fフラグはを表すと考え、常に使用を避けました
-user907860

38

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

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

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


3
Aptitudeコンフリクトリゾルバーについて言及するために投票しました。このような高度なツールを使用して可能性を判断し、コアの競合を特定することが不可欠な場合があります。
ジョンSグルーバー

3
これは、実際にこのスレッドのベストアンサーかもしれません。aptitudeの競合リゾルバに関するショットチュートリアルで改善することもできます。
ルイスデスーサ

2
それは依存関係、あるいは彼らの一般的な概念を説明していませんが、このリンクは、対話型レゾルバの簡単なチュートリアルを示してい:aptitude.alioth.debian.org/doc/en/ch02s03s03.html
overprescribed

1
GTK3の競合に直面しても、aptitudeは+1でベーコンを節約しました。apt-getはまったく役に立ちませんでした。
クリスラプランテ14

1
私が好きなのはsudo aptitude --full-resolver my_package。それは通常、そのThe following packages have unmet dependencies中のリストを提供します7) <my_package> [Not Installed](7は単なる例です)。各ステップで、aptitudeは新しい選択肢を提供します。私のために働いたのは、最初に7、次にr 7(説明に対応Rejecting the removal of my_package)、次にn (NO)を選択することでした。それ以前の選択肢は私が望んでいたものはありませんでしたが、 その後、 新しい選択肢はmy_packageのインストールとともにパッケージのダウングレードを提供しました; したがって、最後に、Y(はい)

24

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はversion 6.7以上で、package3バージョン6.3が必要です。

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

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

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

シナリオC:

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

シナリオD:

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

シナリオE:

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

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

...

シナリオZ:

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

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


17

満たされていない依存関係に関するエラーが発生した場合は、常にこれらの方法に従う必要があります

指示に従って、ソフトウェアをインストールしてみてください。これらの方法の少なくとも1つが動作するはずです

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

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

sudo apt-get clean

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

sudo apt-get autoremove

apt-cacheの更新

sudo apt-get update

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

2。試してみてくださいsudo apt-get install -f

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

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

ここに画像の説明を入力してください
ここに画像の説明を入力してください
ここに画像の説明を入力してください

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の安定バージョンを常に追加します。

ここに画像の説明を入力してください

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

ここに画像の説明を入力してください

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

ここに画像の説明を入力してください


ダグが言ったように:

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

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


病気を修正するためにさらに物を追加し続けますunmet dependencies


3
@Ashu修正apt-get updateしたいことの1つは、aptキャッシュ(ダウンロードしたファイルと、保存したファイルに関する情報を保存するファイルで構成されている)を更新しないことです。パッケージインデックスファイル(利用可能な各ソフトウェアソースからダウンロードおよびインストールできるパッケージに関する情報で構成されます)を更新します。前に言ったように、更新するものと同じものを削除しません。詳細をご覧ください。.deb.debapt-get cleanapt-get updateman apt-get
エリアケイガン

16

ほとんどの場合、パッケージをインストールすると、aptitude満たされていない依存関係が解決されます。デフォルトでは、aptitudeパッケージはPCにインストールされていません。

sudo apt-get update
sudo apt-get install aptitude

その後、

sudo aptitude install packagename

例えば、

    
avinash @ avinash-Lenovo-IdeaPad-Z500:〜$ sudo apt-get install ubuntu-sdk
パッケージリストを読み込んでいます...完了
依存ツリーの構築       
状態情報を読み込んでいます...完了
一部のパッケージをインストールできませんでした。これはあなたが持っていることを意味するかもしれません
不可能な状況を要求した場合、または不安定版を使用している場合
必要なパッケージがまだ作成されていないディストリビューション
または着信から移動されました。
次の情報は、状況の解決に役立つ場合があります。

次のパッケージには、満たされていない依存関係があります。
 ubuntu-sdk:依存:qtcreator-plugin-ubuntuがインストールされません
E:問題を修正できません。壊れたパッケージを保持しています。

パッケージをインストールする aptitude

avinash @ avinash-Lenovo-IdeaPad-Z500:〜$ sudo aptitude install ubuntu-sdk
次の新しいパッケージがインストールされます。
  apparmor-easyprof {a} apparmor-easyprof-ubuntu {a} at {a} build-essential {a} 
  click {a} click-apparmor {a} click-dev {a} click-doc {a} cordova-ubuntu-2.8 
  cordova-ubuntu-2.8-examples {a} debhelper {a} devscripts {a} dh-apparmor {a} 
  dh-make {a} distro-info-data {a} dpkg-dev {a} dput {a} g ++ {a} g ++-4.8 {a} 
  geoclue-gypsy {a} libalgorithm-diff-perl {a} libalgorithm-diff-xs-perl {a} 
  libalgorithm-merge-perl {a} libboost-filesystem1.53.0 {a} 
  libboost-program-options1.53.0 {a} libboost-regex1.53.0 {a} 
  libbotan-1.10-0 {a} libdee-qt5-3 {a} libdistro-info-perl {a} 
  libexporter-lite-perl {a} libglib2.0-dev {a} 
  libgstreamer-plugins-base1.0-dev {a} libgstreamer1.0-dev {a} libgypsy0 {a} 
  libhud2 {a} libio-stringy-perl {a} libjs-jquery {a} libjs-sphinxdoc {a} 
  libjs-underscore {a} liblockdev1 {a} libmail-sendmail-perl {a} 
  libparse-debcontrol-perl {a} libpcre3-dev {a} libpcrecpp0 {a} 
  libpoppler-qt5-1 {a} libqdjango-db0 {a} libqgsttools-p1 {a} 
  libqt5clucene5 {a} libqt5contacts5 {a} libqt5declarative5 {a} 
  libqt5designer5 {a} libqt5designercomponents5 {a} libqt5feedback5 {a} 
  libqt5help5 {a} libqt5location5-plugins {a} libqt5multimedia5 {a} 
  libqt5multimedia5-plugins libqt5multimediaquick-p5 {a} 
  libqt5multimediawidgets5 {a} libqt5organizer5 {a} 
  libqt5qml-graphicaleffects {a} libqt5script5 libqt5scripttools5 {a} 
  libqt5svg5 {a} libqt5svg5-dev libqt5systeminfo5 {a} libqt5v8-5-dev 
  libqt5versit5 {a} libqt5versitorganizer5 {a} libqt5webkit5-dev 
  libqt5webkit5-qmlwebkitplugin {a} libqt5xmlpatterns5 {a} 
  libqt5xmlpatterns5-dev libstdc ++-4.8-dev {a} libsys-hostname-long-perl {a} 
  libthumbnailer0 {a} libu1db-qt5-3 {a} libunity-action-qt1 {a} 
  libupstart-app-launch1 {a} libusermetricsinput1 {a} libxml2-dev {a} 
  libxslt1-dev {a} po-debconf {a} python3-apparmor-click {a} python3-click {a} 
  python3-magic {a} qmlscene qt3d5-dev qtbase5-doc {a} qtcreator {a} 
  qtcreator-doc {a} qtcreator-plugin-ubuntu {a} 
  qtcreator-plugin-ubuntu-common {a} qtdeclarative5-accounts-plugin 
  qtdeclarative5-cordova-2.8-plugin {a} qtdeclarative5-dev-tools 
  qtdeclarative5-doc-html {a} qtdeclarative5-folderlistmodel-plugin 
  qtdeclarative5-friends0.2 qtdeclarative5-localstorage-plugin 
  qtdeclarative5-particles-plugin qtdeclarative5-poppler1.0 
  qtdeclarative5-qtaudioengine-plugin qtdeclarative5-qtfeedback-plugin {a} 
  qtdeclarative5-qtlocation-plugin qtdeclarative5-qtmultimedia-plugin {a} 
  qtdeclarative5-qtorganizer-plugin qtdeclarative5-qtquick2-plugin {a} 
  qtdeclarative5-qtsensors-plugin qtdeclarative5-u1db1.0 
  qtdeclarative5-ubuntu-ui-extras-browser-plugin {a} 
  qtdeclarative5-ubuntu-ui-extras-browser-plugin-assets {a} 
  qtdeclarative5-ubuntu-ui-toolkit-plugin {a} 
  qtdeclarative5-unity-action-plugin {a} qtdeclarative5-usermetrics0.1 
  qtdeclarative5-window-plugin {a} qtdeclarative5-xmllistmodel-plugin 
  qtgraphicaleffects5-doc {a} qtlocation5-dev {a} qtmultimedia5-dev 
  qtmultimedia5-doc {a} qtmultimedia5-doc-html {a} qtscript5-dev 
  qtscript5-doc {a} qtscript5-doc-html {a} qtsensors5-dev {a} qtsvg5-doc {a} 
  qtsvg5-doc-html {a} qttools5-dev qttools5-dev-tools qttools5-doc {a} 
  qtwebkit5-doc-html {a} schroot {a} schroot-common {a} sqlite3 {a} 
  ubuntu-html5-container ubuntu-html5-sdk {ab} ubuntu-html5-theme {a} 
  ubuntu-html5-theme-examples ubuntu-sdk ubuntu-sdk-libs 
  ubuntu-sdk-libs-dev {a} ubuntu-ui-toolkit-doc {a} 
  ubuntu-ui-toolkit-examples {a} ubuntu-ui-toolkit-theme {a} 
  unity-action-doc {a} upstart-app-launch {a} upstart-app-launch-tools {a} 
  usermetricsservice {a} wdiff {a} zlib1g-dev {a} 
次のパッケージがアップグレードされます。
  cpp-4.8 gcc-4.8 gcc-4.8-base hud libasan0 libatomic1 libgcc-4.8-dev 
  libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 
  libstdc ++ 6 libtsan0 
15個のパッケージがアップグレードされ、151個が新しくインストールされ、0個が削除され、293個がアップグレードされていません。
108 MB / 126 MBのアーカイブを取得する必要があります。解凍後、273 MBが使用されます。
次のパッケージには、満たされていない依存関係があります。
 ubuntu-html5-sdk:依存:仮想パッケージであるqtdeclarative5-ubuntu-webapps-api。
                    依存:ubuntu-html5-ui-toolkitがインストールされません。
以下のアクションにより、これらの依存関係が解決されます。

     現在のバージョンで次のパッケージを保持します。              
1)qtcreator-plugin-ubuntu [インストールされていません]                          
2)ubuntu-html5-sdk [インストールされていません]                                 
3)ubuntu-sdk [インストールされていません]                                       

     次の依存関係は未解決のままにします。                       
4)libhud-client2はhud(= 13.10.1 + 13.10.20131014-0ubuntu1)を推奨しています
5)qtcreator-plugin-ubuntu-commonはqtcreator-plugin-ubuntuを推奨しています


この解決策を受け入れますか?[Y / n / q /?] y
次の新しいパッケージがインストールされます。
  apparmor-easyprof {a} apparmor-easyprof-ubuntu {a} build-essential {a} 
  click {a} click-apparmor {a} cordova-ubuntu-2.8 debhelper {a} dh-apparmor {a} 
  dh-make {a} dpkg-dev {a} g ++ {a} g ++-4.8 {a} geoclue-gypsy {a} 
  libalgorithm-diff-perl {a} libalgorithm-diff-xs-perl {a} 
  libalgorithm-merge-perl {a} libdee-qt5-3 {a} libglib2.0-dev {a} 
  libgstreamer-plugins-base1.0-dev {a} libgstreamer1.0-dev {a} libgypsy0 {a} 
  libhud2 {a} libjs-jquery {a} libmail-sendmail-perl {a} libpcre3-dev {a} 
  libpcrecpp0 {a} libpoppler-qt5-1 {a} libqdjango-db0 {a} libqgsttools-p1 {a} 
  libqt5clucene5 {a} libqt5contacts5 {a} libqt5designer5 {a} 
  libqt5designercomponents5 {a} libqt5feedback5 {a} libqt5help5 {a} 
  libqt5location5-plugins {a} libqt5multimedia5 {a} libqt5multimedia5-plugins 
  libqt5multimediaquick-p5 {a} libqt5multimediawidgets5 {a} 
  libqt5organizer5 {a} libqt5qml-graphicaleffects {a} libqt5script5 
  libqt5scripttools5 {a} libqt5svg5 {a} libqt5svg5-dev libqt5systeminfo5 {a} 
  libqt5v8-5-dev libqt5versit5 {a} libqt5versitorganizer5 {a} 
  libqt5webkit5-dev libqt5webkit5-qmlwebkitplugin {a} libqt5xmlpatterns5 {a} 
  libqt5xmlpatterns5-dev libstdc ++-4.8-dev {a} libsys-hostname-long-perl {a} 
  libthumbnailer0 {a} libu1db-qt5-3 {a} libunity-action-qt1 {a} 
  libupstart-app-launch1 {a} libusermetricsinput1 {a} libxml2-dev {a} 
  libxslt1-dev {a} po-debconf {a} python3-apparmor-click {a} python3-click {a} 
  qmlscene qt3d5-dev qtdeclarative5-accounts-plugin 
  qtdeclarative5-cordova-2.8-plugin {a} qtdeclarative5-dev-tools 
  qtdeclarative5-folderlistmodel-plugin qtdeclarative5-friends0.2 
  qtdeclarative5-localstorage-plugin qtdeclarative5-particles-plugin 
  qtdeclarative5-poppler1.0 qtdeclarative5-qtaudioengine-plugin 
  qtdeclarative5-qtfeedback-plugin {a} qtdeclarative5-qtlocation-plugin 
  qtdeclarative5-qtmultimedia-plugin {a} qtdeclarative5-qtorganizer-plugin 
  qtdeclarative5-qtquick2-plugin {a} qtdeclarative5-qtsensors-plugin 
  qtdeclarative5-u1db1.0 qtdeclarative5-ubuntu-ui-extras-browser-plugin {a} 
  qtdeclarative5-ubuntu-ui-extras-browser-plugin-assets {a} 
  qtdeclarative5-ubuntu-ui-toolkit-plugin {a} 
  qtdeclarative5-unity-action-plugin {a} qtdeclarative5-usermetrics0.1 
  qtdeclarative5-window-plugin {a} qtdeclarative5-xmllistmodel-plugin 
  qtlocation5-dev {a} qtmultimedia5-dev qtscript5-dev qtsensors5-dev {a} 
  qttools5-dev qttools5-dev-tools sqlite3 {a} ubuntu-html5-container 
  ubuntu-html5-theme {a} ubuntu-html5-theme-examples ubuntu-sdk-libs 
  ubuntu-ui-toolkit-theme {a} upstart-app-launch {a} 
  upstart-app-launch-tools {a} usermetricsservice {a} wdiff {a} zlib1g-dev {a} 
次のパッケージがアップグレードされます。
  cpp-4.8 gcc-4.8 gcc-4.8-base hud libasan0 libatomic1 libgcc-4.8-dev 
  libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 
  libstdc ++ 6 libtsan0 
15個のパッケージがアップグレードされ、108個が新しくインストールされ、0個が削除され、293個がアップグレードされていません。
27.1 MB / 45.8 MBのアーカイブを取得する必要があります。解凍後、104 MBが使用されます。
続けたいですか?[Y / n /?]

あなたの例では、aptitudeがインストールを停止しているだけです。実際には何もインストールしません。
キリ14

2
@AvinashRaj、..しかし、インストールする前にaptitude依存関係の問題を解決すべきではないのですか?
正確な14

はい、ほとんどの場合、依存関係を解決します。
アビナッシュラジ

2
システムが壊れたパッケージを持っている場合、それが修正されるまで新しいインストールを許可しません.. aptitude最初に問題を解決せずにどのようにインストールしますか!
正確な14

その場合、最初に壊れたパッケージを解決する必要があります。そうしないとインストールできませんaptitude。壊れたパッケージが原因でエラーが発生しなかった場合は、aptitudeをインストールできます。
アビナッシュラジ14

11

私の答えは上記の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

そこで、apt-get install失敗した依存関係の1つを探しました。

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]?

8

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

問題:

Ubuntu 10.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

今は大丈夫です。


この回答を合わせた読み取りおよび上記の他の1 ここでは、依存関係の問題が何であるかのより良い理解を提供します。ここの他の回答が「高度に一般化された」ソリューションを提供する場合、これは理解を提供します。
VenkiPhy6 14

7

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

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

考えられる原因

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->編集->ソフトウェアソース->その他のソース->追加」

    ->を開始しSoftware Centerます。

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

    編集ソフトウェアソース

    ->すべてのリポジトリがチェックされていることを確認してください ここに画像の説明を入力してください

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

    右上のアイコンをクリックして、メニューで更新可能なエントリを選択します
    ここに画像の説明を入力してください

そして、チェックボタンを押します ここに画像の説明を入力してください

4.type ctrl+ alt+ t端子とタイプを開くために sudo apt-get install -f

5. ppa-purge ppa-purgeを使用して、最近追加されたppaを パージします。 ppa-purgeをインストールする

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

構文

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

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

ここに画像の説明を入力してください

そうでない タイプctrl+ alt+ t端子とタイプを開くにはsudo apt-get install -f、画面の指示に従ってください

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


@jrg私はすでに私の答えにそれを持っています...すべての答えは同じものを持つ必要がありますか?
アシュ

2
@Ashu私は人々が標準的な答えをするのを助けようとしています-そして、私はすべての人に話さなければなりません。 。:s
jrg

5

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

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

編集:sudo dpkg -r [package]かなり強力な削除機能があるため、使用をお勧めします。はapt-getと共に機能dpkgするため、機能apt-getに従うことになりdpkgます。

  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使用中にこれはめったに起こりませんでしたが、私はこのアプローチをめったに使用せず、成功しました。これは私が1か月前にパッケージを持っていた最近の闘争の例ですmysql-client/mysql-server。mysql-serverを使用したルートパスワードのリセットに数十回失敗した後(--skip-grant-tables techqiueを使用しても失敗しました)、ついに「おじさん!」と叫ぶまで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 このソリューションの鍵です


3

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] 

考えられる原因の1つである可能性があることに同意します。vlcskypeのインストール後に他のパッケージ(たとえば)をインストールしようとしたときに、依存関係が満たされていないことがわかりました。:amd64エラーの原因となったパッケージ名の最後に追加することで、同様の状況から抜け出しました。どのように回復しましたか?最善の解決策は何でしょうか?
souravc

これがなぜ投票されたのか定かではありません。32ビットのWineをインストールするために必要なものです。ところで、-add-architectureにタイプミスがあり、-add-architectureの後にapt-get upgradeを実行するためのリマインダーを追加する必要があります。
マットチェンバーズ

1

このスレッド(および他のスレッド)で言及されているすべてのメソッドに近づいた後、私はあきらめようとしていました。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

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


上記のパッケージがインストールされていない場合、これは問題を解決しません。
Braiam

1

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

うまくいったもう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

ここでトップ評価の回答から撤回できるものと基本的に同じものは、新しいものではありません
...-JoKeR

1
はい、しかし、無数のソリューションがあります、私は単に私のために働いたものに言及します。
ボブYoplaitの

0

このようなエラーが発生した場合:
ここに画像の説明を入力してください

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

sudo apt-get -f install

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

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

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

しかし、この種のエラーが発生した場合: パッケージをインストールできない/パッケージが利用できない/インストール候補がないなど

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.