ノート:この質問は以前に要求されました。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
手動で。