우분투 Multiarch(Multiarch) 설정 및 패키지 설치와 원복 방법
1. 개요
멀티아크(Multiarch)는 우분투를 비롯한 Debian 계열 Linux에서 서로 다른 CPU 아키텍처의 패키지를 하나의 운영체제에 함께 설치하고 관리할 수 있도록 지원하는 패키지 관리 기능입니다.
일반적으로 64비트 우분투 시스템은 amd64 아키텍처를 사용합니다. 하지만 일부 레거시 프로그램이나 특정 소프트웨어는 여전히 32비트 라이브러리(i386)를 필요로 합니다.
이러한 경우 멀티아크를 활성화하면 기존 64비트 시스템 환경을 유지하면서 필요한 32비트 라이브러리를 추가로 설치하여 사용할 수 있습니다.
과거에는 64비트 시스템에서 32비트 프로그램을 실행하기 위해 별도의 실행 환경을 구성해야 하는 경우가 있었지만 멀티아크를 이용하면 운영체제의 패키지 관리 체계 안에서 필요한 라이브러리와 의존성을 함께 관리할 수 있습니다.
2. 주요 특징 및 장점
2.1. 서로 다른 아키텍처의 패키지 공존
기본 시스템은 64비트(amd64) 아키텍처를 유지하면서 특정 프로그램에 필요한 32비트(i386) 패키지를 함께 설치할 수 있습니다.
예를 들어 다음과 같이 동일한 라이브러리의 서로 다른 아키텍처 패키지를 구분하여 관리할 수 있습니다.
- libc6:amd64 : 64비트 라이브러리
- libc6:i386 : 32비트 라이브러리
패키지 이름 뒤에 :amd64, :i386과 같은 아키텍처 식별자를 지정하여 설치 및 관리할 수 있습니다.
2.2. 별도의 가상 환경 없이 32비트 라이브러리 사용
별도의 가상 머신이나 chroot 환경을 구성하지 않고도 호스트 운영체제에서 32비트 실행 파일과 라이브러리를 사용할 수 있습니다.
다만 프로그램의 실행 조건이나 운영체제 간 호환성에 따라 별도의 격리 환경이 필요한 경우도 있습니다.
2.3. 패키지 의존성 자동 관리
APT와 dpkg는 패키지의 아키텍처 정보를 구분하여 관리하며, 필요한 라이브러리와 의존성 패키지를 자동으로 처리합니다.
이를 통해 기존 64비트 패키지와 32비트 패키지를 함께 설치하고 관리할 수 있습니다.
3. 시스템 아키텍처 확인
멀티아크를 설정하기 전에 현재 시스템의 기본 아키텍처와 추가로 등록된 아키텍처를 확인합니다.
3.1. 기본 아키텍처 확인
dpkg --print-architecture
$ dpkg --print-architecture
amd64
amd64는 현재 시스템의 기본 아키텍처가 64비트임을 의미합니다.
3.2. 추가 아키텍처 확인
dpkg --print-foreign-architectures
현재 시스템에 추가로 등록된 외부 아키텍처 목록을 확인할 수 있습니다.
아직 별도의 아키텍처를 등록하지 않았다면 출력 결과가 없을 수 있습니다.
4. 멀티아크(Multiarch) 활성화 및 패키지 설치
우분투 24.04 LTS의 64비트(amd64) 시스템을 기준으로 32비트(i386) 아키텍처를 추가하고 기본적인 32비트 시스템 라이브러리인 libc6:i386 패키지를 설치합니다.
4.1. i386 아키텍처 추가
sudo dpkg --add-architecture i386
4.2. 패키지 저장소 정보 갱신
sudo apt update
4.3. 32비트 라이브러리 설치
sudo apt install -y libc6:i386
4.4. 설치된 32비트 패키지 확인
dpkg -l | grep ':i386'
$ dpkg -l | grep ':i386'
ii gcc-14-base:i386 14.2.0-4ubuntu2~24.04.1 i386 GCC, the GNU Compiler Collection (base package)
ii libc6:i386 2.39-0ubuntu8.9 i386 GNU C Library: Shared libraries
ii libgcc-s1:i386 14.2.0-4ubuntu2~24.04.1 i386 GCC support library
ii libidn2-0:i386 2.3.7-2build1.1 i386 Internationalized domain names (IDNA2008/TR46) library
ii libunistring5:i386 1.1-2build1.1 i386 Unicode string library
5. 멀티아크(Multiarch) 설정 원복
32비트 라이브러리를 더 이상 사용하지 않는 경우에는 설치된 i386 패키지를 제거한 후 아키텍처 등록을 해제할 수 있습니다.
이때 패키지 의존성을 무시하고 강제로 삭제하기보다는 APT를 이용해 패키지와 관련 의존성을 정상적으로 제거하는 것이 안전합니다.
5.1. 설치된 i386 패키지 확인
dpkg -l | grep ':i386'
5.2. i386 패키지 전체 제거
sudo apt purge '.*:i386'
주의: 위 명령은 특정 라이브러리만 제거하는 것이 아니라 설치된 모든 i386 패키지를 대상으로 합니다.
Wine, Steam 등 다른 32비트 프로그램이 설치되어 있다면 함께 제거될 수 있으므로 실행 전에 대상 패키지를 반드시 확인해야 합니다.
5.3. 불필요한 의존성 패키지 정리
sudo apt autoremove --purge
---
32비트 패키지 강제 삭제 (--force-depends)
- 다른 패키지와 얽혀 있는 의존성 경고를 무시하고, 지정한 32비트 패키지들을 강제로 삭제합니다.
sudo dpkg --purge --force-depends libc6:i386 libgcc-s1:i386 gcc-14-base:i386 \
libidn2-0:i386 libunistring5:i386
보호된 패키지 강제 제거 (--force-remove-protected)
- 시스템 안정성을 위해 dpkg가 일반적인 강제 삭제로도 지우지 못하도록 잠가 둔 핵심 보호 패키지(libgcc-s1:i386)를 보호 해제 옵션으로 억지로 제거합니다.
sudo dpkg --purge --force-remove-protected libgcc-s1:i386
---
5.4. i386 아키텍처 등록 해제
sudo dpkg --remove-architecture i386
5.5. 패키지 저장소 정보 갱신
sudo apt update
5.6. 원복 상태 확인
dpkg --print-architecture
dpkg --print-foreign-architectures
dpkg -l | grep ':i386'
6. 마무리
우분투의 멀티아크 기능을 사용하면 기존 64비트 운영체제 환경을 유지하면서 필요한 32비트 라이브러리를 추가로 설치하고 관리할 수 있습니다.
특히 레거시 애플리케이션이나 특정 32비트 바이너리 실행에 필요한 라이브러리를 제공해야 하는 환경에서 유용하게 활용할 수 있습니다.
다만 32비트 패키지를 제거할 때는 다른 프로그램이 해당 라이브러리에 의존하고 있는지 확인해야 하며 패키지 의존성을 무시한 강제 삭제는 가급적 피하는 것이 좋습니다.
운영 환경에서는 필요한 패키지만 설치하고 사용이 끝난 경우 APT를 통해 정상적으로 제거하는 방식으로 관리하는 것을 권장합니다.
참고URL
- wiki.debian.org : 멀티아크(Multiarch)
'리눅스' 카테고리의 다른 글
| 리눅스 basename 명령어 사용법 정리 (0) | 2026.11.15 |
|---|---|
| NetBox 최신 버전으로 업그레이드하는 방법 (0) | 2026.10.29 |
| 우분투 26.04에서 Vim Visual Mode 진입 키 비활성화하기 (0) | 2026.08.24 |
| HP DL380 Gen9 펌웨어 업그레이드(Firmware Update)하는 방법 (0) | 2026.06.25 |
| 우분투 24.04 Fluent Bit 최신 패키지 설치 및 다운그레이드 방법 (0) | 2026.06.22 |