64 비트 시스템에 32 비트 라이브러리를 설치할 수 있습니까?


8

32 비트 공유 라이브러리가 설치되어 있지만 pogoplug를 설치하는 동안 여전히이 오류가 발생합니다.

./pogoplugfs: error while loading shared libraries: libfuse.so.2: wrong ELF class: ELFCLASS64

32 비트 라이브러리에서 프로그램을로드하기 위해해야 ​​할 일이 있습니까?

비슷한 질문이 올해 초에 질문되었지만 아무런 대답도 얻지 못했습니다.

답변:


9

일부 라이브러리의 경우 64 비트 시스템에 32 비트 및 64 비트 라이브러리를 모두 설치할 수 있습니다. 이것은 ia32-libsUbuntu 10.04 및 이전 버전 의 패키지를 통해 제공됩니다 . 의 파일 목록에ia32-libs 따르면 libfuse.so.2포함 된 파일 이 없습니다 . 즉, 한 번에 두 아키텍처를 모두 설치할 수는 없습니다.

Ubuntu 11.10 Oneiric 이후 패키지는 "멀티 아키텍처"라고하는 다른 아키텍처에 대한 동시 설치를 허용 할 수 있습니다. 불행히도, on Oneiric 의 파일 목록을libfuse2 믿을 수 있다면 이 패키지는 아직 전환되지 않았습니다. 패키지 종속성에서 확인할 수 있습니다. 패키지가 multiarch-support( libdrm2 와 같은 ) 의존하는 경우 다중 아치 지원을 지원합니다. 그러나 이는 여러 아키텍처에 대해 동시에 패키지를 설치할 수 있음을 보증 하지 않습니다 .

패키지의 다중 아키텍처 기능에 대해 로컬 캐시를 쿼리하려면 다음 libc6과 같이 실행하십시오.

apt-cache show libc6 | grep ^Multi-Arch:

이 명령의 출력은 Multi-Arch: same입니다. 즉, 32 비트 및 64 비트 버전의 패키지를 한 번에 설치할 수 있습니다. 출력이 없으면 패키지는 다중 아치 지원을위한 준비가되지 않은 것입니다. 다른 가능한 값foreign(공동 설치 가능 하지 않지만 다른 아키텍처의 종속성을 충족시키는 데 사용될 수 있음) 및 allowed(iirc, 한 번에 하나의 패키지 만 설치할 수 있지만 패키지는 다른 패키지의 종속성을 만족시키는 데 사용될 수 있음 패키지)

다음을 사용하여 64 비트 시스템에 32 비트 패키지를 설치할 수 있어야합니다.

sudo apt-get install packagename:i386

64 비트 시스템 용 32 비트 libfuse 빌드

32 비트 퓨즈 라이브러리는와 함께 제공되지 않으므로 ia32-libs직접 빌드하는 것 외에 다른 선택은 없습니다.

  1. 퓨즈에 대한 빌드 종속성을 설치하고 소스 코드를 얻으십시오.

    sudo apt-get install ia32-libs libc6-i386
    sudo apt-get build-dep fuse
    apt-get source fuse
    
  2. 소스 트리 및 빌드 퓨즈를 구성하십시오 (필요한 경우 디렉토리 이름을 조정하십시오).

    cd fuse-2.8.4
    CFLAGS=-m32 ./configure --host=i386-linux-gnu
    make -j 50
    
  3. 32 비트 퓨즈 라이브러리를 설치하십시오 (버전을 적절히 조정하십시오).

    sudo ln -s libfuse.so.2.8.4 /usr/local/lib/libfuse.so.2
    sudo install -m644 lib/.libs/libfuse.so.2.8.4 /usr/local/lib/
    
  4. 링커 캐시를 업데이트하십시오.

    sudo ldconfig
    
  5. (선택 사항) 소스 파일을 제거하십시오.

    cd ..
    rm -r fuse-2.8.4
    

0

그렇습니다. ia32를 설치하십시오. 이 작업이 완료되면 이제 32 비트 기반 프로그램을 64 비트 플랫폼에 설치할 수 있습니다.


ia32를 설치했습니다 (공유 라이브러리에 대해 이야기 한 것입니다). 이것은 libfuse.so.2와 함께 오류를 일으켰습니다
Mat

1
ia32-libs모든 32 비트 라이브러리를 포함하지는 않습니다.
Lekensteyn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.