기본적으로 두 가지 질문이 있습니다.
- Linux에 32비트 Python과 64비트 Python을 설치하는 방법은 무엇입니까?
- 다음 시도 실패로 인해 손상된 시스템을 복구하는 방법은 무엇입니까?
방금 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"
보시다시피, 우리의 경우 스키마는 amd64
and 입니다 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