したがって、私のネイティブアーキテクチャはAMD64であり、i386を外部アーキテクチャとして追加しました。私は奇妙な適切な行動に直面しました。たとえば、libqt4-dbusパッケージを見てみましょう。利用可能なすべてのパッケージバージョンを見つけようとします。
phargelm@phargelm:~$ Sudo apt list libqt4-dbus -a
Listing... Done
libqt4-dbus/stable,now 4:4.8.6+git64-g5dc8b2b+dfsg-3+deb8u1 AMD64 [installed]
AMD64ビルドしか利用できないようです。パッケージアーキテクチャ(i386)を明示的に指定してこのパッケージをインストールしようとすると、次のようになります。
phargelm@phargelm:~$ Sudo apt install libqt4-dbus:i386
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:
libqt4-dbus:i386 : Depends: libqtdbus4:i386 (= 4:4.8.6+git64-g5dc8b2b+dfsg-3+deb8u1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
また、apt-get -finstallでは結果がありません。
phargelm@phargelm:~$ Sudo apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
しかし、適性はうまく機能しています:
phargelm@phargelm:~$ Sudo aptitude install libqt4-dbus:i386
The following NEW packages will be installed:
gcc-4.9-base:i386{a} libc6:i386{a} libc6-i686:i386{a} libdbus-1-3:i386{a} libffi6:i386{a} libgcc1:i386{a} libglib2.0-0:i386{a} libpcre3:i386{a} libqt4-dbus:i386
libqt4-xml:i386{a} libqtcore4:i386{a} libqtdbus4:i386{a} libselinux1:i386{a} libstdc++6:i386{a} zlib1g:i386{a}
0 packages upgraded, 15 newly installed, 0 to remove and 0 not upgraded.
Need to get 11.2 MB of archives. After unpacking 27.1 MB will be used.
つまり、質問は、aptitudeがlibqt4-dbus:i386を問題なくインストールできるのに、aptがインストールできない理由、修正方法は?
この問題は、ソースリストから非公式の「dotdeb」リポジトリを削除し、すべてのパッケージをアンインストール/安定したブランチにダウングレードすることで解決されました。
答えは適性の出力で見ることができます。単に適性はあなたのために依存関係地獄を解決しようとする高レベルのツールです。 Aptは、このライブラリには依存関係のインストールが必要であると述べました。これはAptitudeが行ったことです。リクエストを行うには、Aptitudeによってインストールされた追加のライブラリのリストを確認してください。これは、このリストをすべて自分でインストールするように手動で依頼した場合、Aptによって実現できます。
事前にaptitudeデータベースとインストール済みパッケージを更新する必要がある場合があります。
# aptitude update
# aptitude safe-upgrade