제품 테스트를 위해 리눅스에서 32bit JNI 모듈을 실행해야 하는 일이 생겼다.
32bit 리눅스에서 32bit 모듈을 실행하는 경우에는 아무런 문제가 없지만, 32bit 리눅스 장비를 사용할 일이 거의 없으므로 64bit 장비에서 32bit 모듈을 테스트 하려 했지만 실패했다.
모듈 테스트는 커녕 32bit Java를 사용하려고 하니 No such directory or file
이라는 에러가 나왔다. 환경 변수가 잘못 잡힌거라 생각했으나 해당 경로로 직접 들어가서 실행하려해도 No such directory or file
에러가 발생했다.
처음에 에러 내용만 봤을때는 OS bit 문제일 거라고는 전혀 생각이 안 났지만, 해당 오류를 검색해보니 64bit 리눅스에서 32bit 프로그램을 실행하려 했기 때문
이라는 것을 알 수 있었다.
No such directory or file
에러 외에도 다음과 같은 에러가 발생할 수 있다. The 32bit support is missing. Please install the x86 compatibility...
OS는 64bit이나 실행하려는 앱 패키지는 32bit로 되어 있기 때문에 발생하는 에러인데, x86(32bit) 호환성 패키지를 설치하면 문제가 해결된다.
CentOS
# yum -y install glibc-devel.i686 libstdc++-devel.i686
Ubuntu
# sudo apt-get install ia32-libs
글 잘 봤습니다, 감사합니다.