우분투 32bit 라이브러리 설치

MIPS 계열 또는 임베디드 시스템 환경에서 개발을 한다면 Host PC 플랫폼과 상관없이 특별한 상황을 제외하고 대부분 32bit 라이브러리 기반으로 개발을 한다. 즉, Host PC 플랫폼과 상관없이 개발 보드는 32bit 라이브러리를 필요로 한다. 이것은 Host PC가 64bit 운영체제가 설치되어 있더라도 개발용 32bit 라이브러리가 함께 설치되어 있어야 한다는 것을 의미한다.

 

캐노니컬이 모든 32bit 개발 지원을 중단한다는 공지에 맹폭을 맞고 선택적으로 개발 지원을 유지하는 것으로 선회한 만큼 여전히 32bit 라이브러리는 여러 분야에서 사용되고 있다. 하지만 캐노니컬이 전체가 아닌 선택적으로 지원하는 것이기 때문에 일부 패키지 대해서만 한정적으로 지원할 것으로 보인다.

 

참고로, 이 포스팅은 Ubuntu 18.04 이하 버전을 기준으로 정리를 하였다. Multiarch 패키지는 동일 시스템에 다양한 아키텍쳐를 개발할 수 있는 환경을 제공한다. 데비안 문서를 참고하면 더 자세히 알 수 있다.

 

임베디드 개발 환경에 필요한 32비트 라이브러리르 설치하기 위해 아래와 같이 i386 패키지 받을 수 있도록 저장소 추가 및 소스 리스트를 업데이트 하도록 한다.

$ sudo dpkg --add-architecture i386
$ sudo apt update

아래와 같이 multiarch:i386 패키지를 설치하면 개발에 가장 기본 패키지인 gcc, libc 그리고 libgcc가 32bit로 설치되는 것을 확인할 수 있다.

$ sudo apt install multiarch-support:i386

위 설치된 패키지 이외의 32bit 패키지를 추가로 설치하려면 다음과 같이 패키지 이름 뒤에 <패키지명>:i386을 붙여 설치하면 된다.

$ sudo apt install libc6:i386 libstdc++6:i386 zlib1g:i386

참고로, Ubuntu 20.04 버전은 Multiarch 패키지는 삭제되어 Multiarch 설치로 일괄 설치되었던 32bit 라이브러리를 각각 설치해야 된다.