web-dev-qa-db-ja.com

満たされていない依存関係を高める

Ubuntuにライブラリをインストールするのは簡単だと聞いたので、Ubuntuに切り替えて、boostをインストールしようとしたので、次のように書きました。

Sudo apt-get install libboost-all-dev

私はこれを取得します:

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:  libboost-all-dev :
Depends: libboost-python-dev but it is not going to be installed E:
Unable to correct problems, you have held broken packages.

今、私は canonical-question がこれにありますが、答えが示唆するように:

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

しかし、私は自分の状況について珍しいものがあるとは思わない。実際、私がboostをインストールしようとしたまさにその理由は、私がそれを簡単にする必要があることを知っているからです。基本的なことがうまくいくかどうか試してみたかったのですが、それは私を失望させました。 「一般的な解決策」に対して私の質問を欺く代わりに助けてください。私はそれを試しましたが、ある時点で、回答者が何について話しているのか分かりません:

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

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

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

私の特定の質問はこれです:

この日、Ubuntu 12.04 LTSをインストールしました。コードブロック、g ++、ビルド必須、問題なくインストールしました。

Sudo apt-get install openscenegraphを試してみましたが、ハードドライブのヘッダーファイルを見つけることができませんでしたが、動作した可能性があります(openscenegraph-devをダウンロードする必要があります(ただし、存在しません))

そこで、このパッケージインストーラーが最初に機能するかどうかを確認するためにboostをインストールすることを選択し、上記で貼り付けたものを取得しました(依存関係が満たされていない)。

なぜ機能しないのか、どうすれば機能させることができますか?

編集:

apt-cache madison libboost-python-dev

返却値:

libboost-python-dev |   1.48.0.2 | http://archive.ubuntu.com/ubuntu/precise/main AMD64 Packages
4
Jani Kovacs

満たされていない依存関係の問題が発生する方法の1つは、依存アプリケーションにインストールされない独自の依存関係がある場合です。ここがその例です。

問題はlibboost-python-dev依存libboost-python1.46-devです。ただし、インストールは試行されませんでした。

packages.ubuntu.com

したがって、libboost-python-devをインストールするには、libboost-python1.46-devもインストールする必要があります。

だから実行:

Sudo apt-get install libboost-all-dev libboost-python-dev libboost-python1.46-dev

** openscenegraph-dev をインストールできます:

Sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev libopenscenegraph80 libopenthreads-dev libopenscenegraph-dev 
0
user224082
Sudo aptitude install libboost-all-dev

Apt-getの代わりにaptitudeを使用すると、競合するパッケージを削除するための自動ソリューションが提供される場合があります。

1
jhclark

私は自分でこの問題に遭遇しました。 「libboost1.48-dev」がインストールされている場合と同様の「libboost1.48-dev」がインストールされています。

  • libboost1.48-all-devではなく、libboost-all-devをインストールします。後者はバージョン1.46で、すでにインストールされているlibboost1.48-python-devと互換性がありません。

  • または、v1.46に戻る場合は、libboost1.48-python-devをアンインストールし、libboost-all-devをインストールできます。

0
John Kua