amd64 debianstretch에 check:i386을 설치하는 방법은 무엇입니까? [폐쇄]

amd64 debianstretch에 check:i386을 설치하는 방법은 무엇입니까? [폐쇄]

amd64 Debian GNU/Linux 9.3(stretch) virtualbox vm을 사용하는 데 문제가 있습니다. 테스트 중인 프로그램이 32비트로 컴파일되어야 하므로 32비트 버전의 libcheck(C 단위 테스트 프레임워크)를 사용하고 싶습니다. 그래서 현재 빌드는 다음과 같이 실패합니다.

/usr/bin/ld: skipping incompatible //usr/lib/x86_64-linux-gnu/libcheck.a when searching for -lcheck
/usr/bin/ld: cannot find -lcheck

32비트 버전의 libcheck를 설치하기 위해 다음을 수행했습니다.

dpkg --add-architecture i386
apt-get update
apt-get install gcc-multilib
apt-get install check:i386

마지막 명령은 다음과 같습니다.

...
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:
 check:i386 : Depends: libsubunit-dev:i386 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

원하는 대로 계속 먹이면 다음과 같은 결과가 됩니다.

sudo apt-get install check:i386 libsubunit-dev:i386 libsubunit0:i386 libc6:i386 install-info:i386 libgcc1:i386 gcc-6-base:i386

그런 다음 내가 원하는 것을 설치하겠다고 말했지만 시스템의 절반(1766 패키지)을 제거하고 "예, 내가 말한 대로 하세요!"라고 요청했습니다. 이것은 분명히 잘못된 것입니다. 내 질문은 다음과 같습니다

  1. 내가 뭘 잘못했나요?
  2. apt가 원하는 것이 무엇인지 어떻게 이해합니까?

resources.list에서 테스트를 활성화하면 gcc 7이 설치되고 모든 것이 잘 작동하기 때문에 이것이 작동할 것이라고 확신합니다. 문제는 이 가상 머신에서 테스트하고 싶지 않기 때문에 상태를 확장됨으로 되돌린다는 것입니다.

답변1

문제는 혼합된 스트레치 + 테스트 시스템에 있었습니다. 일부 libc 관련 패키지를 다운그레이드한 후 모든 것이 잘 작동했습니다. 따라서 check:i386 설치에 대해 설명한 프로세스는 정확합니다. 단지 시스템이 엉망이라는 것뿐입니다. 지도해주신 De Robert에게 감사드립니다.

관련 정보