CentOS 64 비트 잘못된 ELF 인터프리터


183

방금 CentOS 6 64 비트 버전을 설치했는데 64 비트 컴퓨터에 32 비트 응용 프로그램을 설치하려고하는데이 오류가 발생했습니다.

/lib/ld-linux.so.2 : 잘못된 ELF 인터프리터 : 해당 파일 또는 디렉토리가 없음

저는 리눅스를 처음 사용합니다. 이 문제를 어떻게 해결합니까?

답변:


355

64 비트 시스템에 있고 32 비트 라이브러리 지원이 설치되어 있지 않습니다.

32 비트 실행 파일에 대한 설치 (기준) 지원

(설정에서 sudo를 사용하지 않으면 아래 참고 사항을 읽으십시오)

Fedora / Red Hat 제품군의 대부분의 데스크탑 Linux 시스템 :

 pkcon install glibc.i686

일부 데스크탑 데비안 / 우분투 시스템?

pkcon install ia32-libs

Fedora 또는 최신 Red Hat, CentOS :

 sudo dnf install glibc.i686

이전 RHEL, CentOS :

   sudo yum install glibc.i686

더 오래된 RHEL, CentOS :

  sudo yum install glibc.i386

데비안 또는 우분투 :

   sudo apt-get install ia32-libs

필요한 (첫 번째, 주요) 라이브러리를 가져와야합니다.

당신이 그것을 가지고 있다면, 아마 당신은 지원 라이브러리가 필요할 것입니다

다른 라이브러리 종속성 을 설치해야 할 수도 glibc.i686있고 glibc.i386아마도 실행할 수도 있습니다. 임의의 라이브러리를 제공하는 패키지를 식별하려면

 ldd /usr/bin/YOURAPPHERE

확실하지 않으면 /usr/bin다시 넘어갈 수 있습니다.

 ldd $(which YOURAPPNAME)

결과는 다음과 같습니다.

    linux-gate.so.1 =>  (0xf7760000)
    libpthread.so.0 => /lib/libpthread.so.0 (0xf773e000)
    libSM.so.6 => not found

누락 된 라이브러리 (예 : libSM.so.6위 출력에서)를 확인하고 각 라이브러리 에 대해 제공하는 패키지를 찾아야합니다.

배포 제품군 당 패키지를 찾는 명령

페도라 / Red Hat Enterprise / CentOS :

 dnf provides /usr/lib/libSM.so.6

또는 이전 RHEL / CentOS에서 :

 yum provides /usr/lib/libSM.so.6

또는 데비안 / 우분투에서 :

먼저 데이터베이스를 설치하고 다운로드하십시오. apt-file

 sudo apt-get install apt-file && apt-file update

다음으로 검색

 apt-file find libSM.so.6

/usr/lib(보통) 경우 접두사 경로 를 유의하십시오 . 드물기는하지만 일부 라이브러리는 여전히 /lib역사적인 이유로 남아 있습니다. 일반적인 64 비트 시스템에서 32 비트 라이브러리는 /usr/lib64 비트 라이브러리에 /usr/lib64있습니다.

(데비안 / 우분투는 다중 아키텍처 라이브러리를 다르게 구성합니다.)

누락 된 라이브러리 용 패키지 설치

위는 패키지 이름을 알려줍니다. 예 :

libSM-1.2.0-2.fc15.i686 : X.Org X11 SM runtime library
Repo        : fedora
Matched from:
Filename    : /usr/lib/libSM.so.6

이 예에서 패키지의 이름입니다 libSM패키지의 32 비트 버전의 이름입니다libSM.i686 .

그런 다음 pkconGUI를 사용하여 또는 필요한 경우 패키지를 설치하여 필수 라이브러리를 가져올 수 있습니다 sudo dnf/yum/apt-get. 예 pkcon install libSM.i686. 필요한 경우 버전을 완전히 지정할 수 있습니다. 예 sudo dnf install ibSM-1.2.0-2.fc15.i686.

일부 도서관은 이름 앞에“에포크 (epoch)”지정자가있을 것입니다. 이것은 생략 될 수있다 (호기심은 아래의 노트를 읽을 수있다).

노트

경고

근본적으로, 직면하고있는 문제는 RPM (Resp. DPkg / DSelect) 데이터베이스가 손상되었거나 실행하려는 응용 프로그램이 패키지 관리자를 통해 설치되지 않았 음을 의미합니다. Linux를 처음 사용하는 경우 가능하면 패키지 관리자 이외의 소스에서 소프트웨어를 사용하지 않는 것이 좋습니다.

설정에서 "스도"를 사용하지 않는 경우

유형

su -c

당신이 볼 때마다 sudo, 예를 들면,

su -c dnf install glibc.i686

라이브러리 이름의 시대 지정자 정보

이름 앞의 "에포크"지정자는 기본 RPM 라이브러리가 버전 번호를 처리하는 방식의 인공물입니다. 예 :

2:libpng-1.2.46-1.fc16.i686 : A library of functions for manipulating PNG image format files
Repo        : fedora
Matched from:
Filename    : /usr/lib/libpng.so.3

여기서는 2:생략 할 수 있습니다. 그냥 pkcon install libpng.i686또는 sudo dnf install libpng-1.2.46-1.fc16.i686. (어쩌면 어느 시점에서 libpng패키지 의 버전 번호가 뒤로 구르고 업데이트 중에 최신 버전이 "최신"으로 간주되도록 "에포크"를 늘려야했습니다. .)


다양한 패키지 관리자 옵션을보다 명확하게 설명하기 위해 업데이트 되었습니다 (2016 년 3 월)


IV 이제 점점 libpam.so.0 메신저 것을 설치 : 열 수 없습니다 공유 오브젝트 파일
c11ada

7
앱에 필요한 라이브러리가없는 경우 직접 찾아서 설치해야합니다. 운이 좋으면 yum을 통해 사용할 수 있습니다. "ldd (바이너리)"를 사용하여 라이브러리를 나열 할 수 있습니다. 나열된 각 라이브러리에 대해 "/lib/ld-linux.so.2 (0x4f8d9000)"또는 "libc.so.6 => /lib/libc.so.6 (0x4f8fa000)과 같은 판독 값을 제공하지 않습니다. "시도 : sudo yum은 * / lib / libWHATEVER.so를 제공하여 패키지 이름을 찾은 다음 sudo yum install PACKAGE.i686을 설치합니다. (시스템에 기본적으로 설치 될 때 x86_64가 아닌 i386 또는 i686을
가져와야 함

이 답변은 64 비트 시스템으로 마이그레이션해야하는 32 비트 소프트웨어가있는 경우 Godsend입니다.
froggythefrog

이것은 Fedora 20에 Oracle jre 1.7을 설치하는 데 매우 도움이되었습니다. glibc.i686 외에도 libgcc.i686을 설치해야했습니다.
존 슈미트

17

새로 설치된 CentOS 6.4 64 비트 시스템에서 동일한 문제가 발생했습니다. 단일 yum 명령으로 비슷한 문제의 99 %를 더할 수 있습니다.

yum groupinstall "호환 라이브러리"

접두사 'sudo'를 접두사로 사용하거나 루트로 실행하십시오.


14

일반적으로 이와 같은 오류가 발생하면

yum provides ld-linux.so.2

그러면 다음과 같은 것이 보일 것입니다 :

glibc-2.20-5.fc21.i686 : The GNU libc libraries
Repo        : fedora
Matched from:
Provides    : ld-linux.so.2

그런 다음 BRPocock이 쓴 것처럼 다음을 실행하십시오 (논리가 무엇인지 궁금한 경우 ...).

yum install glibc.i686

3

시험

$ yum provides ld-linux.so.2
$ yum update
$ yum install glibc.i686 libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6

이것이 해결되기를 바랍니다.


0

BRPocock에 의견을 추가하고 싶었지만 충분한 권한이 없습니다.

그래서 저의 공헌은 IBM의 Integration Bus 번들에서 IBM Integration Toolkit을 설치하려는 모든 사람들을위한 것입니다.

/ Integration_Toolkit / IM_Linux 폴더 ( "실행 파일"은 "install"임)에서 "Installation Manager"명령을 실행하려고하면이 게시물에 오류가 표시됩니다.

이 문제점을 해결하기위한 추가 지시 사항은 다음 IBM 웹 페이지에서 찾을 수 있습니다. https://www-304.ibm.com/support/docview.wss?uid=swg21459143

이것이 설치하려고하는 사람에게 도움이되기를 바랍니다.


0

sudo yum 설치 fontconfig freetype libfreetype.so.6 libfontconfig.so.1 libstdc ++. so.6



0

.i686대신 OpenJDK 32 비트 ( )를 설치할 수도 있습니다 . 내 테스트에 따르면 설치되고 문제없이 작동합니다.

sudo yum install java-1.8.0-openjdk.i686

노트 :

자바 1.8.0 - 오픈 JDK 패키지가 포함되어 단지 JRE (Java Runtime Environment)를 . Java 프로그램을 개발하려면 java-1.8.0-openjdk-devel 패키지 를 설치하십시오 .

자세한 내용은 여기 를 참조하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.