Ubuntu 14.04でChromiumをビルドするために必要な依存関係をインストールしようとすると、次のメッセージが表示されます。
The following packages have unmet dependencies:
g++-4.8-multilib : Depends: gcc-4.8-multilib (= 4.8.2-19ubuntu1) but it is not going to be installed
Depends: lib32stdc++-4.8-dev (= 4.8.2-19ubuntu1) but it is not going to be installed
Depends: libx32stdc++-4.8-dev (= 4.8.2-19ubuntu1) but it is not going to be installed
lib32gcc1 : Depends: gcc-4.9-base (= 4.9-20140406-0ubuntu1) but 4.9.1-0ubuntu1 is to be installed
libbluetooth-dev : Depends: libbluetooth3 (= 4.101-0ubuntu13) but 4.101-0ubuntu13.1 is to be installed
libcairo2-dbg : Depends: libcairo2 (= 1.13.0~20140204-0ubuntu1) but 1.13.0~20140204-0ubuntu1.1 is to be installed
libcairo2-dev : Depends: libcairo2 (= 1.13.0~20140204-0ubuntu1) but 1.13.0~20140204-0ubuntu1.1 is to be installed
Depends: libcairo-gobject2 (= 1.13.0~20140204-0ubuntu1) but 1.13.0~20140204-0ubuntu1.1 is to be installed
Depends: libfontconfig1-dev (>= 2.2.95) but it is not going to be installed
libfontconfig1-dbg : Depends: libfontconfig1 (= 2.11.0-0ubuntu4) but 2.11.0-0ubuntu4.1 is to be installed
libgbm-dev : Depends: libgbm1 (= 10.1.0-4ubuntu5)
libgl1-mesa-glx:i386 : Depends: libglapi-mesa:i386 (= 10.1.0-4ubuntu5)
Recommends: libgl1-mesa-dri:i386 (>= 7.2)
Conflicts: libgl1
libgl1-mesa-glx-lts-utopic : Conflicts: libgl1:i386
Conflicts: libgl1-mesa-glx:i386
libglib2.0-0-dbg : Depends: libglib2.0-0 (= 2.40.0-2) but 2.40.2-0ubuntu1 is to be installed
libglib2.0-dev : Depends: libglib2.0-0 (= 2.40.0-2) but 2.40.2-0ubuntu1 is to be installed
Depends: libglib2.0-bin (= 2.40.0-2)
libgtk2.0-dev : Depends: libpango1.0-dev (>= 1.20) but it is not going to be installed
libpango1.0-0-dbg : Depends: libpango-1.0-0 (= 1.36.3-1ubuntu1) but 1.36.3-1ubuntu1.1 is to be installed or
libpangocairo-1.0-0 (= 1.36.3-1ubuntu1) but 1.36.3-1ubuntu1.1 is to be installed or
libpangoft2-1.0-0 (= 1.36.3-1ubuntu1) but 1.36.3-1ubuntu1.1 is to be installed or
libpangoxft-1.0-0 (= 1.36.3-1ubuntu1) but 1.36.3-1ubuntu1.1 is to be installed
libpulse-dev : Depends: libpulse0 (= 1:4.0-0ubuntu11) but 1:4.0-0ubuntu11.1 is to be installed
Depends: libpulse-mainloop-glib0 (= 1:4.0-0ubuntu11) but 1:4.0-0ubuntu11.1 is to be installed
libstdc++6-4.6-dbg : Depends: libgcc1-dbg but it is not going to be installed
libudev-dev : Depends: libudev1 (= 204-5ubuntu20) but 204-5ubuntu20.11 is to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
You will have to install the above packages yourself.
このパッケージを直接インストールする必要がありますが、どうすればよいですか?
試してみると、sudo apt-get install <some_package>
次のメッセージが表示されます(例:gcc-4.8-multilib)。
gcc-4.8-multilib : Depends: lib32gcc-4.8-dev (= 4.8.2-19ubuntu1) but it is not going to be installed
Depends: libx32gcc-4.8-dev (= 4.8.2-19ubuntu1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
誰かがこれらすべてのパッケージのインストールの問題を解決するのに役立ちますか?
アップデート1:
私はsudo apt-get install lib32gcc-4.8-dev
次のようになります。
lib32gcc-4.8-dev : Depends: lib32gcc1 (>= 1:4.8.2-19ubuntu1) but it is not going to be installed
Depends: libx32gcc1 (>= 1:4.8.2-19ubuntu1) but it is not going to be installed
Depends: lib32asan0 (>= 4.8.2-19ubuntu1) but it is not going to be installed
Depends: libx32asan0 (>= 4.8.2-19ubuntu1) but it is not going to be installed
私はapt-cache policy lib32gcc-4.8-dev
次のようになります。
lib32gcc-4.8-dev:
Installed: (none)
Candidate: 4.8.2-19ubuntu1
Version table:
4.8.2-19ubuntu1 0
500 http://ro.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
アップデート2:
私はsudo apt-get install lib32gcc1
次のようになります。
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:
lib32gcc1 : Depends: gcc-4.9-base (= 4.9-20140406-0ubuntu1) but 4.9.1-0ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.
私はapt-cache policy lib32gcc1
次のようになります。
Installed: (none)
Candidate: 1:4.9-20140406-0ubuntu1
Version table:
1:4.9-20140406-0ubuntu1 0
500 http://ro.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
1:4.6.3-1ubuntu5 0
500 mirror://mirrors.ubuntu.com/mirrors.txt/ precise/main amd64 Packages
私はapt-cache policy lib32gcc-4.8-dev lib32gcc1 libx32gcc1 lib32asan0 libx32asan0
次のようになります。
lib32gcc-4.8-dev:
Installed: (none)
Candidate: 4.8.2-19ubuntu1
Version table:
4.8.2-19ubuntu1 0
500 http://ro.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
lib32gcc1:
Installed: (none)
Candidate: 1:4.9-20140406-0ubuntu1
Version table:
1:4.9-20140406-0ubuntu1 0
500 http://ro.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
1:4.6.3-1ubuntu5 0
500 mirror://mirrors.ubuntu.com/mirrors.txt/ precise/main amd64 Packages
libx32gcc1:
Installed: (none)
Candidate: 1:4.9-20140406-0ubuntu1
Version table:
1:4.9-20140406-0ubuntu1 0
500 http://ro.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
lib32asan0:
Installed: (none)
Candidate: 4.8.2-19ubuntu1
Version table:
4.8.2-19ubuntu1 0
500 http://ro.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
libx32asan0:
Installed: (none)
Candidate: 4.8.2-19ubuntu1
Version table:
4.8.2-19ubuntu1 0
500 http://ro.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
アップデート3:
私はapt-cache policy gcc-4.9-base
次のようになります。
gcc-4.9-base:
Installed: 4.9.1-0ubuntu1
Candidate: 4.9.1-0ubuntu1
Version table:
*** 4.9.1-0ubuntu1 0
100 /var/lib/dpkg/status
4.9-20140406-0ubuntu1 0
500 http://ro.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
これを実行しようとすると、次の結果sudo apt-get purge gcc-4.9-base
が表示されます。
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:
libgcc1 : Depends: gcc-4.9-base (= 4.9.1-0ubuntu1) but it is not going to be installed
libudev1 : Depends: libcgmanager0 but it is not going to be installed
Depends: libnih-dbus1 (>= 1.0.0) but it is not going to be installed
Depends: libnih1 (>= 1.0.0) but it is not going to be installed
libxcb1 : Depends: libxau6 but it is not going to be installed
Depends: libxdmcp6 but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
答え1
端末を開き、次のように入力します。
sudo apt-get autoclean
sudo apt-get autoremove
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get autoclean
ローカルリポジトリから取得したパッケージファイルを消去します/var/cache/apt/archives
。違いは、もはやダウンロードできず、本質的に役に立たないパッケージファイルのみを削除することです。
sudo apt-get autoremove
他のパッケージへの依存関係を満たすために自動的にインストールされたが必要なくなったパッケージを削除するために使用されます。
autoclean
また、autoremove
システムに影響を与える可能性のある不要なソフトウェアパッケージがないことを確認するためにも使用されます。
sudo apt-get update
ソースリストを更新し、ソースのパッケージインデックスファイルを再同期します。
sudo apt-get dist-upgrade
アップグレード機能を実行することに加えて、dist-upgradeはソフトウェアパッケージの依存関係の変更をインテリジェントに処理することもできます。
答え2
少なくとも一部のgcc
パッケージは手動でインストールされており、Ubuntu 14.04のパッケージよりも最新のバージョンに対応しています。その依存関係をインストールするには、g++-multilib
そのパッケージをアーカイブのバージョンにダウングレードする必要があります。
走り始める
sudo apt-get install gcc-4.9-base=4.9-20140406-0ubuntu1
そしてそこから...ダウングレードする必要がある他のパッケージが何であるかを示す多くのエラーが表示されます。
パッケージをダウングレードするには、apt-cache policy
各パッケージを実行してアーカイブのバージョン(つまりURLがあるバージョンtrusty
)を確認し、それらをsudo apt-get install
上の行に追加する必要があります。
sudo apt-get install gcc-4.9-base=4.9-20140406-0ubuntu1 package1=version1 package2=version2 ...
あるいは、gcc
関連パッケージをすべて消去して再インストールすることもできます。
明らかに手動でインストールされたバージョンを持つ別のライブラリがあるため、アーカイブと一致するようにシステムを復元するには多くの作業が必要になる場合があります。