리눅스를 조금이라도 사용해 본 분들이라면 서드파티 애플리케이션을 설치하는 가장 일반적인 방법 중 하나가 .deb 패키지라는 사실을 눈치챘을 것입니다. 리눅스 플랫폼에는 수십 가지의 서로 다른 패키지 형식이 존재하기 때문에, 개발자들이 이 모든 형식에 맞춰 패키징 작업을 진행하기 어렵습니다. 그래서 .deb 패키지가 유일한 배포 수단인 경우도 많습니다.
Debian 기반이 아닌 많은 리눅스 배포판들은 각자의 방식으로 이 문제를 해결하고 있습니다. 그중에서도 Arch Linux는 Debian 패키지를 동작시키는 가장 흥미로운 방법들을 제공합니다. 이 글에서는 세 가지 방법을 소개하고, 어떤 방법이 가장 적합한지 살펴보겠습니다.
참고: 아래의 방법들은 Arch 기반 배포판이라면 모두 적용할 수 있습니다.
AUR를 통한 설치
Arch Linux에서 공식 지원하지 않는 소프트웨어를 찾을 때 가장 먼저 확인해야 할 곳은 바로 AUR(Arch User Repository)입니다. 항상 여기서부터 검색하세요. AUR은 누구나 PKGBUILD 스크립트를 업로드할 수 있는 서비스로, 이 스크립트는 다양한 곳에서 소프트웨어를 가져오고, 실행에 필요한 의존성 패키지를 일부 또는 전부 다운로드한 뒤, 네이티브 Arch Linux 패키지로 컴파일하도록 설계되어 있습니다.
AUR을 활용하는 방법은 크게 두 가지입니다.
1. AUR 헬퍼 사용하기
번거로운 과정 없이 빠르게 작업을 끝내고 싶다면 yay나 yaourt 같은 AUR 헬퍼를 사용하세요. AUR 헬퍼로 .deb 파일 자체를 설치할 수는 없지만, Arch 사용자들이 만들어 둔 Arch 형식의 패키지를 찾을 수 있을 가능성이 높습니다.
AUR 헬퍼에 대한 자세한 정보와 설치 방법은 '추천 AUR 헬퍼 5선' 목록을 참고하세요. 헬퍼를 하나 설치했다면 AUR에서 패키지를 검색하고 설치하기만 하면 됩니다.
Manjaro, EndeavourOS, Garuda 등 Arch 기반 배포판을 사용 중이라면 AUR 헬퍼가 이미 설치되어 있을 가능성이 큽니다. 사용 중인 배포판의 문서를 확인해 어떤 헬퍼가 포함되어 있는지 살펴보세요. Garuda와 EndeavourOS는 yay를 기본으로 사용합니다.
그래픽 환경을 선호한다면 pamac-aur 패키지를 AUR 헬퍼로 설치하면 됩니다(아직 설치되어 있지 않다면). 설치 후에는 "환경설정 → 서드파티(Third Party)" 메뉴에서 AUR 지원을 활성화해야 한다는 점에 유의하세요.
2. AUR 패키지 수동 설치하기
비공식 패키지를 확보하는 또 다른 방법은 AUR 웹사이트에 접속해 검색창을 이용한 후 "스냅샷(snapshot)"을 다운로드하는 것입니다. 이 방법은 자동화 수준이 낮지만, 패키지가 만들어지거나 설치되는 과정을 더 세밀하게 제어하고 싶다면 그만한 가치가 있습니다. 패키지가 즉시 설치되는 대신, 목적에 맞게 수정할 수 있는 네이티브 패키지가 생성됩니다.
즉, 개인용 커스텀 저장소를 운영하고 있다면 새로 빌드한 패키지를 해당 저장소에 손쉽게 넣어 편리하게 관리할 수 있습니다.
참고: Arch의 기본 저장소와 AUR만 사용할 계획이라면, 수동 빌드보다는 AUR 헬퍼로 패키지를 설치하는 것이 훨씬 좋은 선택입니다.
DEB 형식으로만 배포되는 대부분의 프로그램은 AUR에서 찾을 수 있습니다. 하나를 처음부터 Arch 패키지로 컴파일하는 방법은 다음과 같습니다.
- 터미널에 아래 명령어를 입력해
git과 Arch의 기본 개발 패키지들이 설치되어 있는지 확인하고 설치합니다.
sudo pacman -S --needed git base-devel
- 다운로드하여 설치하려는 패키지의 AUR 페이지에서 "Git Clone URL"을 확인하고 복사합니다. 홈 디렉터리에서 연 터미널에 해당 URL을 아래와 같이 입력합니다.
git clone [붙여넣은 URL]
이렇게 하면 패키지의 git 저장소가 다운로드되며, 그 안에는 Arch의 강력한 makepkg 도구를 위한 PKGBUILD 설정 파일이 포함되어 있습니다.
- 아래 명령어로 방금 다운로드한 패키지의 빌드 디렉터리로 이동합니다.
cd [패키지 이름]
- 패키지를 생성하고 자동으로 설치하려면 다음 명령어를 입력합니다.
makepkg -si
궁금하신 분들을 위해 설명하자면, -s(--syncdeps) 플래그는 공식 Arch Linux 저장소에서 해당 패키지와 관련된 모든 의존성을 자동으로 가져오고, -i(--install) 플래그는 단순히 패키지를 컴파일하는 것을 넘어 시스템에 통합하도록 지시합니다(예: 메뉴 항목 생성, 필요 시 커널 인자에 대한 통합 처리 등).
Debtap을 통한 설치
어떤 이유로든 필요한 deb 패키지가 AUR에 없다면 Debtap을 설치해 보세요. Debtap은 Debian 패키지를 분해하여 패키지 관리자가 "이해할 수 있는" Arch 패키지로 변환해 주는 프로그램입니다.
주의: 이 방법은 본인의 판단하에 사용하세요. 설치하는 .deb 패키지가 의존하는 상위 패키지들의 유지관리자가 기능을 제거하는 업데이트를 배포하면, 설치된 패키지가 깨질 수 있습니다. 항상 발생하는 문제는 아니지만, 이 방법이 언제나 완벽하게 작동하지 않을 수 있다는 점은 인지하고 있어야 합니다.
- 이전 섹션의 안내에 따라 AUR을 통해 Debtap을 먼저 설치합니다.
- 설치가 완료되면
sudo debtap -u를 한 번 실행해 debtap 자체 저장소를 업데이트합니다. 이 과정을 생략하면 애플리케이션이 정상적으로 작동하지 않습니다. - 변환하려는 .deb 파일을 다운로드한 뒤, 해당 디렉터리로
cd명령어로 이동하고 다음 명령어를 사용합니다.
debtap packagetoconvert.deb
- Debtap이 데이터 입력을 요청하는 단계에서는 무시하고 키보드의 Enter 키를 누르면 됩니다.
- 완료되면 Debtap은 패키지 관리자가 오프라인 설치 절차로 해석하고 설치할 수 있는 "pkg.*.zst" 파일을 생성합니다.
- 방금 변환한 .deb 패키지가 있는 디렉터리로
cd명령어로 이동한 후 아래를 입력합니다.
sudo pacman -U [패키지 이름]
수동 설치
경고: 이 방법은 매우 위험하며, 다른 선택지가 전혀 없고 특정 패키지의 작동 방식과 Arch가 기대하는 동작에 대해 이미 깊이 이해하고 있는 경우에만 사용해야 합니다. 예를 들어 Plymouth나 VirtualBox 같은 일부 애플리케이션은 설정 파일을 편집하고 해당 훅(hook)을 포함해 커널을 재빌드하는 방식으로만 가능한 커널 연동이 필요할 수 있습니다. 게다가 이 방법으로는 패키지의 의존성이 함께 설치되지 않습니다.
가장 우아한 해결책은 아니지만, Debtap으로 .deb 파일을 변환할 수도 없고 AUR pkgbuild로 컴파일할 수도 없는 상황이라면 최선의 방법은 Debian 패키지 자체를 추출해 파일들을 제 위치에 배치하는 것입니다.
이전 방법들보다 훨씬 번거롭긴 하지만, 플랫폼 독립적이라는 장점이 있습니다. 즉, Void Linux, Fedora, openSUSE 같은 다른 배포판에서도 이 방법을 사용할 수 있습니다. Gentoo와 Slackware에서는 직접 테스트해 보지 않았기 때문에, 두 배포판의 패키지 설치 방식 특성상 결과가 다를 수 있습니다.
Debian 패키지는 바이너리가 담긴 아카이브이므로 컴파일이 필요 없습니다. 어떤 deb 패키지의 파일이든 Arch에 설치하려면 먼저 폴더 하나에 압축을 풉니다. 이때 해당 폴더 안에 있는 "data"라는 이름의 아카이브도 함께 압축을 풀어야 한다는 점을 잊지 마세요.
예를 들어 Google Chrome을 설치하려면, 먼저 "data.tar.xz"의 압축을 푼 내용물이 들어 있는 deb 폴더로 cd 명령어로 이동합니다.
cd ~/Downloads/google-chrome-stable_current_amd64
그다음 ls 명령어를 실행하면 deb 패키지 내부의 data 아카이브에 들어 있는 모든 폴더가 표시됩니다. 이 폴더들의 이름을 잘 기억해 두세요. 각 디렉터리로 이동해 그 안의 내용물을 시스템상의 올바른 위치로 옮기면 됩니다.
예를 들면 다음과 같습니다.
cd ~/Downloads/google-chrome-stable_current_amd64/etc sudo mv * /etc/ cd ~/Downloads/google-chrome-stable_current_amd64/opt sudo mv * /opt/
자주 묻는 질문
1. Debtap이 너무 오래 걸리는 이유는?
Debtap은 .deb 파일에 포함된 메타데이터를 활용해 가장 충실한 Arch 패키지를 만들어냅니다. 이는 문제 발생을 최소화하고, pacman이 패키지 본체 외에 어떤 의존성을 추가로 설치해야 하는지에 대한 정확한 정보를 제공하기 위함입니다. 단순히 tarball의 압축을 푸는 것 이상의 상당한 작업이 수반됩니다.
여기에 더해, Debtap이 파일을 변환할 때 사용하는 스크립트는 CPU 코어 하나만 사용합니다. 따라서 싱글 코어 성능이 작업 완료 시간을 좌우하는 결정적 요소가 됩니다. 용량이 큰 패키지는 몇 분까지 걸릴 수 있다고 예상하는 것이 좋습니다.
2. Debtap 실행 후 그래픽 설치 도구를 사용할 수 있나요?
네! pamac 버전이 설치되어 있다면, Debtap이 생성한 tar-zst 파일을 파일 관리자로 열 수 있습니다. 해당 파일을 실행할 프로그램으로 pamac을 선택하면, Debian에서 .deb 패키지를 다루듯 더블클릭만으로 패키지와 모든 의존성을 자동으로 설치할 수 있습니다.
3. Debtap과 AUR은 어떻게 비교할 수 있나요?
Debtap은 정말로 필요한데 어떤 이유로든 AUR에서 찾을 수 없는 것을 설치하기 위한 최후의 "임시방편"으로 생각해야 합니다. AUR에서 찾을 수 있다면 .deb 파일을 사용하는 것보다 항상 해당 패키지를 설치하는 것이 더 나은 선택입니다.
마무리
Arch Linux의 가장 큰 매력 중 하나는 패키지를 설치할 수 있는 방법이 얼마나 다양하다는 점입니다. AUR부터 커스텀 저장소, 그리고 다른 배포판의 패키지를 역컴파일해서 실행하는 방법까지 말이죠. 이 정보가 새로운 것은 아니지만, Arch를 처음 접하고 좋아하는 프로그램을 설치하는 방법을 찾고 있는 분들에게는 분명 유용한 자료가 될 것입니다.
Arch Linux에서 AUR을 활용하는 방법에 대해서도 계속 읽어보세요.