時々、ものをインストールしているときに、次のようなエラーが表示されます。
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.
どうすれば解決できますか?
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
または、
須藤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(個人パッケージアーカイブ)は、 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
更新:利用可能なパッケージのリストをソースリポジトリのサーバーと同期します。アップグレード:インストールされているパッケージの新しいバージョンをダウンロードしてインストールします。
重複したPPAを削除します。 Y PPA Manager
(回答の最後にあるインストールガイド)は、重複するPPAを簡単にスキャンして削除できます。
y-ppa-manager
を実行してY PPA Managerを開きます。Advanced
に。Scan and remove duplicate PPAs
を選択し、[OK]をクリックします。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
をインストールするには、ヒットしてターミナルを開きます 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
注:実行するように要求されたすべてのコマンドは、ターミナルで実行する必要があります。 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
は、インストールする必要があるときに帯域幅を節約するために、最近ダウンロードしたパッケージのキャッシュを保持します。これは場合によっては逆効果になる可能性があります
今、それをきれいにするために、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
フォルダーをスキャンし、パッケージがまだリポジトリにあるかどうかを確認し、そうでないものを削除します
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とそのアプリケーションをパージするために使用されるツールです
それをインストールするには、実行します
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 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
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 に感謝)
エラー固有の出力を必要とする他のファイル/コマンドもあり、ユーザーはおそらくコメントでファイル/コマンドを投稿するように促します。
これらの回答はこれまでのところ、そのような問題を自動的に解決する方法に焦点を当てており、主にそれ自体が解決することを期待していますが、依存関係の調査方法の理解には焦点を当てていません。パッケージリストが最新であることを確認するなどのことを試すことが重要です。簡単に更新したり、キャッシュをクリアしても問題を解決してから掘り下げる必要があるからです。ただし、背後ですべてが正常に機能している場合は、依存関係を理解する方法を学ぶことが最も重要です。依存関係の層が圧倒的に見えることもありますが、概念はシンプルであり、Ubuntuシステムでソフトウェアをインストール/アンインストールする方法を理解するための鍵となります。
Ubuntuのような.debベースのシステムを使用している人には aptitude を強くお勧めします。そのツリー構造により、推奨パッケージや推奨パッケージなどの依存関係を簡単に参照したり、競合や満たされていない依存関係を視覚化したりできます。これは、apt-getが単純なソリューションを提供しない場合や、一般的な依存関係を視覚化するための貴重なツールです。 ( Synaptic はUbuntuでも使用できますが、直感的ではありません。)
Aptitudeはまた、競合/問題なくすべての要件を満たすために、インストール/削除/アップグレード/などのパッケージのすべての可能な組み合わせを順を追って説明する競合リゾルバーを提供します。これは、aptが解決策を見つけることができない場合でも成功する可能性があります。 Ubuntuユーザーとしては、通常、その特定のパッケージがインストールされている理由を調査する必要がある状況は発生しませんが、システムをさらに使用するにつれてほとんど避けられません。
package1:依存:package2(> = 1.8)が1.7.5-1ubuntu1がインストールされる
メッセージの説明:
この質問に対する単一の正しい答えはありませんし、簡単な答えもありません。
これが発生する可能性のあるシナリオは多数あり、すべてのオプションを調査し、このエラーにつながる前提条件を解決する必要があります。
アクセスできるすべてのリポジトリには、1.8以上のバージョンのpackage2がないため、存在するリポジトリを見つける必要があります。バージョンが1.8以上のリポジトリが見つからない場合は、ソースからpackage2をビルドしてインストールする必要があります。そして、package1のインストールを試みます。
ソースからパッケージをビルドする方法を知りたい場合は、他の質問/回答を確認するか、新しい質問/回答を投稿してください。
リポジトリには、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つずつ強制的にインストールして、問題がないことを望みます。
システムパッケージに対してこれを行うと、深刻な問題が発生する可能性があることに注意してください。システムからロックアウトしたり、重要なサービスをブロックしたりできます。
問題の理由に関係なく、手動コンパイル用にいつでもセットアップし、必要なパッケージと、ソースからの必要な正確なバージョンのすべての依存関係をビルドできます。このオプションを使用すると、システムとの競合が発生しないように、構築したものを別のディレクトリに保存し、システムパスから除外できます。これはおそらく最もクリーンなソリューションであり、場合によっては高速化することもできます。
パッケージマネージャーは、パッケージに関する古い情報にアクセスできるため、ソリューションを見つけることができません。他の答えを見てください。
パッケージマネージャーには、依存関係解決コードにバグがあります。
これが実際に事実であることを調査してから、バグリクエストを発行する必要があります。
...
他のシナリオがあるかもしれません。
たとえば、パッケージメンテナーが間違っている可能性があり、package1がpackage2 <1.8のバージョンでも動作することを確認しなかったため、仕様では誤った依存関係を設定していました。
これらのメソッドは、Unmet Dependenciesに関してエラーが発生する場合は常に従う必要があります
指示に従って、ソフトウェアをインストールしてみてください。これらのメソッドの少なくとも1つshould
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また、すべての公式リポジトリが有効になっていることを確認してください(Software Sources
で)
Proposed Updates
はテスト/開発者向けであるため、有効にしないでください。
ダグが言ったように:
通常、これを解決するための最良の最初のステップは、
<pkg1>
および<pkg2>
のソースを識別することです。
さらに、ほとんどの場合ではないにしても、多くの場合、「<whatever>をインストールする」とは「<whatever>をインストールする」ことを意味し、他に何も機能しない場合は削除する必要があります(ポイント5のように)。
unmet dependencies
を修正するために、見つけにくいものをさらに追加していきます。
私の答えは、上記のrickに似ています。
apt-get clean
、apt-get autoclean
、apt-get autoremove
、apt-get upgrade
、apt-get update
、apt-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]?
素晴らしい答えです!しかし、今日、私の場合はあなたのものとは異なるようです。これが私のアドバイスです。
問題:
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
今は大丈夫です。
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
すべてのデフォルトリポジトリが有効になっていることを確認してください
-> Software Center
-> Edit-> Software Sources-> Other Sources-> Addで簡単に追加できます」
-> Software Center
を開始します。
->。パネルでEdit
に移動し、Software Sources
を選択します。
->すべてのリポジトリがチェックされていることを確認してください
ソフトウェアカタログを更新します
右上のアイコンをクリックして、メニューで更新可能なエントリを選択します
そして、チェックボタンを押します
4.タイプ ctrl+alt+t ターミナルを開いてSudo apt-get install -f
と入力します
5. ppa-purge ppa-purgeを使用して、最近追加されたppaをパージします
このプログラムは、ソフトウェアソースからPPAを無効にし、システムを公式のUbuntuパッケージに戻します。これを使用して、PPAから新しいバージョンをテストした後、システムを通常に戻すことができます。
構文
Sudo ppa-purge ppa:<repository-name>/<subdirectory>
例
Sudo ppa-purge ppa:ubuntu-mozilla-daily/ppa
Elseタイプ ctrl+alt+t ターミナルを開いてSudo apt-get install -f
と入力し、画面の指示に従います
それでもエラーが発生する場合は、お気軽に askbunt でお問い合わせください
上記の答えに加えて、私は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の使用ではめったに起こりませんでしたが、このアプローチを使用することはめったになく、成功しました。これは、パッケージ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
はこのソリューションのキーです
多くの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つのことは、「適性」を使用することです。
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
このスレッド(および他のスレッド)で言及されているすべてのメソッドに近づいた後、私はあきらめようとしていました。私は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設定ファイルを破壊するので、バックアップしてください!)
これは、パッケージが既にインストールされていることを示していますが、動作する必要がある他のすべてのパッケージをインストールしていません。これを実行することでこれを解決できるはずです:
Sudo apt-get -f install
(このコマンドは、満たされていない依存関係を自動的にインストールする必要があります。)
またはこのようなもの(関連するパッケージを使用):
Sudo apt-get install click curl dpkg-dev python-lzma python-requests imagemagick ubuntu-dev-tools
その後、それらをインストールする方法を検索できます here または here 。
上記の例では、 this のようなページを見つけてから a PPA を使用するか、 a .debをインストールします。 32ビットの場合 、または 64ビットの場合は.deb 。