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.
ターミナルを開き、次のように入力します
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アップグレードの機能を実行することに加えて、パッケージの依存関係の変更もインテリジェントに処理します
gcc
パッケージの少なくとも一部は手動でインストールされ、Ubuntu14.04よりも新しいバージョンに対応しています。 g++-multilib
とその依存関係をインストールするには、それらのパッケージをアーカイブ内のバージョンにダウングレードする必要があります。
実行することから始めます
Sudo apt-get install gcc-4.9-base=4.9-20140406-0ubuntu1
そこから上に向かって作業します...これにより、ダウングレードする必要のある他のパッケージを示す一連のエラーが発生するはずです。
パッケージをダウングレードするには、各パッケージでapt-cache policy
を実行して、アーカイブにあるバージョン(trusty
URLのバージョン)を判別し、それをSudo apt-get install
に追加する必要があります。上記の行;だからあなたは
Sudo apt-get install gcc-4.9-base=4.9-20140406-0ubuntu1 package1=version1 package2=version2 ...
または、gcc
と関連するすべてのパッケージを削除して、再インストールすることもできます。
どうやら手動でインストールされたバージョンのライブラリが他にもあるので、アーカイブと一致するようにシステムを復元するにはかなりの作業が必要になる場合があります。