Contents
see ListCentOS bad ELF interpreter 오류 해결
32비트 바이너리를 64비트 시스템에서 실행할 때 발생하는 오류입니다.
오류 메시지
/lib/ld-linux.so.2: bad ELF interpreter: 그런 파일이나 디렉터리가 없습니다원인
64비트 CentOS에서 32비트 프로그램을 실행하려 할 때, 32비트 라이브러리가 설치되어 있지 않아서 발생합니다.
해결 방법
# 32비트 호환 라이브러리 설치
yum install ld-linux.so.2
# 또는 glibc 32비트 버전 설치
yum install glibc.i686
# CentOS 7 이상에서는
yum install glibc.i686 libstdc++.i686추가 32비트 라이브러리 설치
# 일반적으로 필요한 32비트 라이브러리들
yum install libstdc++.i686
yum install zlib.i686
yum install ncurses-libs.i686
yum install libX11.i686
yum install libXrender.i686
yum install libXext.i686
# 한번에 설치
yum install glibc.i686 glibc-devel.i686 libstdc++.i686 zlib.i686확인 방법
# 바이너리가 32비트인지 확인
file /path/to/binary
# 필요한 라이브러리 확인
ldd /path/to/binary
# 설치된 32비트 패키지 확인
rpm -qa | grep i686주의사항
- yum 대신 dnf 사용시:
dnf install glibc.i686 - Docker 컨테이너에서도 동일한 오류 발생 가능
- Oracle Instant Client 같은 상용 SW에서 자주 발생