노트:이 질문은 이전에 요청되었습니다.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
. 다중 아키텍처 공동 설치를 허용하려면 별도의 패키지로 가져와야 합니다.)
지금까지 가장 일반적인 방법은 데비안 패키지를 빌드하는 경우 chroot를 사용하는 것입니다.sbuild
기본적으로 여러 아키텍처를 지원합니다. 그렇지 않으면 사용해야 합니다.debootstrap
수동으로.