一部のパッケージはマルチアーキテクチャを使用してインストールできません(2つを使用)。

一部のパッケージはマルチアーキテクチャを使用してインストールできません(2つを使用)。

ノート:この質問は以前に要求されました。askubuntu.comしかし、主題と異なるという理由で拒否され、代わりにこのウェブサイトにリダイレクトされました。だからここに再投稿します。

私はGNU / Linuxで32ビットプログラムと64ビットプログラムの両方をコンパイルしようとしています。ただし、依存関係の中には独自の競合があるため、amd64とi386のバージョンを同時にインストールすることはできません。

はい:

ubuntu@ubuntu:~$ sudo apt-get --no-install-recommends install libfltk1.3-dev:amd64 libfltk1.3-dev: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:
 libfltk1.3-dev : Conflicts: libfltk1.3-dev:i386 but 1.3.2-4 is to be installed
 libfltk1.3-dev:i386 : Conflicts: libfltk1.3-dev but 1.3.2-4 is to be installed
E: Unable to correct problems, you have held broken packages.

別々に(32ビットおよび64ビットOSで)ビルドすることを選択する前に、これにいくつかの回避策があるかどうかを尋ねたかったです。これはUbuntu 14.04でテストされました。

修正する:この投稿マルチアーキテクチャは、まだ異なるアーキテクチャのバイナリ(ライブラリとヘッダのみ)の共同インストールをサポートしていないことを強調しています。libfltk1.3-dev含む/usr/bin/fltk-config、これがすぐに複数のインスタンスと競合する理由である可能性が高いです。

ベストアンサー1

libfltk1.3-dev複数のアーキテクチャバリアントの共同インストールは(まだ?)サポートされていないため、32ビットプログラムと64ビットプログラムを同時にビルドするために両方のバージョンをインストールamd64することはできません。i386(の場合、libfltk1.3-devパッケージにが含まれているためですfltk-config。複数のアーキテクチャを共同インストールできるようにするには、別のパッケージにインポートする必要があります。)

これまでの最も一般的な方法は、Debianパッケージをビルドする場合はchrootを使用することです。sbuildデフォルトでは複数のアーキテクチャをサポートしています。それ以外の場合は使用する必要があります。debootstrap手動で。

おすすめ記事