64비트 플랫폼의 32비트 패키지

64비트 플랫폼의 32비트 패키지

기본적으로 두 가지 질문이 있습니다.

  1. Linux에 32비트 Python과 64비트 Python을 설치하는 방법은 무엇입니까?
  2. 다음 시도 실패로 인해 손상된 시스템을 복구하는 방법은 무엇입니까?

방금 Linux Mint 16에 32비트 Python과 64비트 Python을 설치해 보았습니다. 내가 바랐던 것만큼 간단하지는 않았지만(비슷한 것이 sudo apt-get install python32좋을 것임) 인터넷 검색을 한 후 Python 2.7.6을 다운로드하고 다음을 수행했습니다.

sudo apt-get install ia32-libs gcc-multilib checkinstall
CC="gcc -m32" LDFLAGS="-L/lib32 -L/usr/lib32 -Lpwd/lib32 -Wl,-rpath,/lib32 -Wl,-rpath,/usr/lib32" ./configure --prefix=/opt/pym32
make
sudo checkinstall

아마도 다음과 같이 32비트 또는 64비트(기본값)를 실행할 수 있을 것입니다.

python -c 'import sys; print sys.maxint'
/opt/pym32/bin/python -c 'import sys; print sys.maxint'

...하지만 /opt/pym32/생성되지도 않았습니다. 설상가상으로, 내 시스템은 이제 29개의 손상된 종속성을 보고하는데, 이는 새로운 Python이 이전 Python이나 이와 유사한 것을 대체했음을 나타냅니다. 이 문제를 해결하기 위해 aptitude는 필요한 여러 패키지를 제거하고 필요하지 않은 여러 패키지를 설치할 것을 제안했습니다.

나는 checkinstall을 사용했고 대신 make install문제가 발생하면 되돌리거나 제거할 수 있었지만 Python을 제거/재설치하는 것은 손상된 종속성으로 인해 작동하지 않습니다. 이 곤경에서 벗어날 방법이 있습니까?

답변1

64비트 플랫폼의 32비트 패키지

먼저, 패키지 관리자가 다양한 아키텍처의 패키지를 설치할 수 있도록 허용해야 합니다. 그런데 누구입니까? Apt는 wget및 의 간단한 조합 입니다 dpkg. 진정한 패키지 관리자는 dpkg실제 패키지 작업을 처리하는 낮은 수준의 인프라를 제공한다는 것 입니다 *.deb.

이제 특정 사례에 사용 가능한 아키텍처를 살펴보겠습니다.

dpkg-architecture --list-known | grep -E "amd64|i386"

또는

dpkg-architecture --list-known | ack "amd64|i386"

보시다시피, 우리의 경우 스키마는 amd64and 입니다 i386. 이제 패키지 관리자가 i386패키지를 설치하도록 허용할 수 있습니다.

sudo dpkg --add-architecture i386

이제 패키지를 설치할 수 있습니다.

sudo aptitude update && sudo aptitude install python2.7:i386

일반적으로 첫 번째 i386패키지를 설치하면 많은 수의 종속 패키지가 설치됩니다. 예를 들어, 내Debian x86_64 GNU/Linux 테스트(확장)설치 skype( 에 따라 다름 libc6:i386)로 인해 다음이 설치됩니다.189콤보:

dpkg --get-selections | ack i386 -c

문제는 python2.7:i386이 프로그램과 충돌 python2.7하고 많은 패키지가 이에 의존한다는 것입니다 python2.7. 따라서 python2.7:i386모든 그래픽 환경을 제거하지 않으면 설치할 수 없습니다.

손상된 종속성 수정

이것은 매우 간단합니다.

sudo apt-get install -f && sudo dpkg --configure -a

관련 정보