답변:
ia32-libs 패키지는 64 비트 설치에 32 비트 패키지를 설치하는 데 사용되었습니다. Ubuntu 버전 11.10 (Oneiric)부터 Multi Arch 가 추가되었습니다. 목표 중 하나는 ia32-libs
패키지를 제거하는 것입니다 . 대신 다음을 사용하여 패키지의 32 비트 라이브러리를 설치해야합니다.
sudo apt-get install package-name:i386
표준 리포지토리의 wine
패키지 (예 : 패키지)에 대해서는이 점에 대해 걱정할 필요가 없습니다 . 외부 소프트웨어의 경우 종속성을 수동으로 찾아야하므로 조금 더 어렵습니다. 이 경우 자주 사용하는 검색 엔진을 사용하여 필요한 라이브러리를 찾으십시오.
ia32-lib는 여전히 존재하지만, 일반적인 32 비트 라이브러리를 포함하기위한 편의 패키지 일뿐입니다. 이 패키지는 이제 Multi Arch를 사용하여 32 비트 패키지를 올바르게 설치합니다.
ldd
, 바이너리 경로를 인수로 전달합니다. 출력에와 같은 줄이 포함되어 libz.so.1 => not found
있으면를 찾아야 libz.so.1
합니다. packages.ubuntu.com 을 사용 하거나 apt-file search
해당 파일이 포함 된 패키지를 찾을 수 있습니다 . 내가 제시 한 예에서는 설치해야합니다 zlib1g:i386
.
package-name
실제 이름 으로 바꿔야 합니다. 사용 ldd
위의 두 번째 주석을 참조 알아낼 수 있습니다.
ia32-libs
패키지는 완전히로 대체되었습니다 lib32z1 lib32ncurses5 lib32bz2-1.0
. 다른 패키지에만 기능이 아직 남아 있기 때문에 문제가되지 않습니다. 그러나 우리는 모든 사람이 패키지를 관리하고 모든 소프트웨어가 FLOSS 인 이상적인 세상에 살고 있지 않으므로 일부 패키지는 여전히 ia32-lib에 의존합니다.
두 가지 방법이 있습니다 :
ia32-libs
더 이상 의존하지 않도록 수동으로 다시 포장 할 수 있습니다 . (권장)시트릭스 수신기를 예로 사용하지만 모든 .deb 패키지에이 방법을 사용할 수 있습니다.
먼저 웹 사이트에서 citrix receiver .deb 패키지를 다운로드하여 해킹을 수행 할 임시 디렉토리를 만드십시오.
mkdir ica_temp
패키지 추출
dpkg-deb -x icaclient_13.0.0.256735_amd64.deb ica_temp
dpkg-deb --control icaclient_13.0.0.256735_amd64.deb ica_temp/DEBIAN
gedit (또는 선호하는 편집기)에서 파일을 엽니 다
sudo -H gedit ica_temp/DEBIAN/control
로 시작하는 줄을 찾으십시오 Depends:...
. 제거 ia32-libs
하고 추가하십시오lib32z1 lib32ncurses5 lib32bz2-1.0
수정 된 패키지 재 구축
dpkg -b ica_temp icaclient-modified.deb
그리고 설치
sudo dpkg -i icaclient-modified.deb
sudo apt-get install -f
citrix 수신기를 설치하려면 약간의 해킹도 필요합니다. 우분투 위키 에서 전체 설치 지침을 찾을 수 있습니다
여전히 ia32-libs에 의존하는 이전 .deb 패키지를 사용하여이 작업을 수행 할 수 있습니다.
이전 패키지를 설치하는 것은 매우 나쁜 습관입니다! 안타깝게도 일부 바이너리 설치 프로그램의 경우 다른 선택 항목이 없습니다.
raring 저장소 에서 ia32-libs 패키지를 다운로드 할 수 있습니다 . 다운로드하여 수동으로 설치하면 종속성을 해결해야합니다.
ia32-libs-multiarch
패키지를 대신 설치해야한다는 것을 읽었습니다 . 그러나 그것은 나를 위해 작동하지 않았고이 오류가 발생합니다
ia32-libs-multiarch:i386 : Depends: libgphoto2-2:i386 but it is not going to be installed.
나를 위해 일한 해결책은 다음 패키지를 설치하는 것이 었습니다.
sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386
이 특정 사용 사례는 "lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2"패키지로 대체되었다고 생각합니다. "다중 아키텍처를 사용할 수 있습니다"라고 말하는 것보다 더 구체적이고 유용한 대답 일 것입니다.
ia32-libs를 다음과 같이 설치했습니다 (64 비트 머신에서 Ubuntu 13.04 Raring Ringtail을 실행합니다).
자체 아키텍처를 확인하십시오.
$ dpkg --print-architecture
외부 아키텍처가 설치되어 있는지 확인하십시오.
$ dpkg --print-foreign-architectures
위의 두 명령의 결과에 따라 다음 세 명령이 작동 할 수 있습니다 (필자의 경우 처리 시간이 오래 걸림).
$ sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install ia32-libs
Package ia32-libs is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: lib32z1 lib32ncurses5 lib32bz2-1.0