Computer >> 컴퓨터 >  >> 시스템 >> Linux

리눅스 패키지 변환 도구 Alien 사용법: DEB, RPM 등 형식 간 변환 완벽 가이드

리눅스 패키지를 다른 형식으로 변환하고 싶으신가요? 원하는 패키지가 사용 중인 배포판에서 제공되지 않지만 어떻게 해서든 설치하고 싶은 경우가 있을 수 있습니다. 또는 개발자라면 패키지를 다시 빌드하지 않고도 프로그램을 다른 형식으로 빠르게 재패키징하여 시간을 절약하고 싶을 것입니다.

다행히 리눅스에는 이러한 작업에 딱 맞는 도구가 있습니다. Alien을 사용하면 명령줄에서 기존 리눅스 패키지를 다른 형식으로 손쉽게 변환할 수 있습니다. 먼저 시스템에 이 도구를 설치하는 방법부터 알아보겠습니다.

리눅스에 Alien 설치하기

Alien은 우분투의 universe 저장소에서 제공됩니다. 설치하려면 먼저 universe 저장소를 활성화하고 시스템의 패키지 목록을 업데이트한 후, 평소처럼 APT로 alien 패키지를 설치하면 됩니다.

sudo add-apt-repository universe
sudo apt update
sudo apt install alien

데비안 사용자라면 별도 설정 없이 APT로 바로 설치할 수 있습니다.

sudo apt install alien

아치 리눅스(Arch Linux)의 공식 저장소에는 아직 Alien이 포함되어 있지 않습니다. 대신 AUR 헬퍼를 통해 설치할 수 있는데, 이 가이드에서는 yay를 사용하겠습니다.

yay -S alien

페도라(Fedora), CentOS 등 RPM 기반 배포판에서는 DNF를 사용해 다음과 같이 설치할 수 있습니다.

sudo dnf install alien

설치가 완료되면 터미널에 alien --version을 입력해 정상적으로 설치되었는지 확인하세요. 버전 정보가 출력되면 설치가 성공한 것이며, 그렇지 않다면 위의 설치 과정을 다시 한번 진행해 보세요.

Alien으로 지원되는 패키지 형식

Alien을 사용하면 여러 리눅스 패키지 형식 간에 상호 변환이 가능합니다. 지원되는 주요 형식은 다음과 같습니다.

  1. DEB — 데비안 계열 배포판(우분투 포함)
  2. TAR.GZ — 압축 아카이브 패키지
  3. RPM — 페도라, CentOS 등 RPM 기반 배포판
  4. PKG — 솔라리스(Solaris) 패키지 형식
  5. SLP
  6. LSB — 리눅스 스탠다드 베이스(Linux Standard Base) 패키지

주요 옵션 정리

Alien에서 사용할 수 있는 주요 옵션은 다음과 같습니다.

  1. -d 또는 --to-dpkg: 지정한 패키지를 DEB 형식으로 변환
  2. -r 또는 --to-rpm: 패키지를 RPM 형식으로 변환
  3. -t 또는 --to-tgz: 지정한 패키지에서 TAR.GZ 아카이브 생성
  4. -l 또는 --to-lsb: LSB(리눅스 스탠다드 베이스) 패키지 생성
  5. -p 또는 --to-pkg: 지정한 패키지를 PKG 형식으로 변환
  6. --to-slp: SLP 패키지 생성

Alien 사용 방법

Alien 유틸리티의 기본 문법은 다음과 같습니다.

sudo alien options filename

여기서 options는 명령과 함께 사용할 다양한 플래그이고, filename은 변환하려는 패키지의 절대 경로 또는 상대 경로입니다.

RPM 패키지를 DEB로 변환하려면 다음과 같이 입력합니다.

sudo alien --to-deb file.rpm
sudo alien -d file.rpm

모든 변환 과정을 살펴볼 수 있도록, 이번에는 DEB 파일을 다른 리눅스 패키지 형식들로 변환해 보겠습니다.

DEB → RPM:

sudo alien --to-rpm file.deb
sudo alien -r file.deb

DEB → TAR.GZ:

sudo alien --to-tgz file.deb
sudo alien -t file.deb

DEB → LSB:

sudo alien --to-lsb file.deb
sudo alien -l file.deb

DEB → PKG:

sudo alien --to-pkg file.deb
sudo alien -p file.deb

DEB → SLP:

sudo alien --to-slp file.deb

참고로 어떤 패키지 형식이든 다른 형식으로 자유롭게 변환할 수 있습니다. 예를 들어 RPM → LSB, SLP → PKG, PKG → DEB 같은 조합도 모두 가능합니다.

여러 형식으로 동시에 변환하기

하나의 명령으로 패키지를 여러 형식으로 동시에 변환하는 것도 가능합니다. 변환할 형식의 플래그를 나란히 지정하기만 하면 됩니다.

sudo alien --to-deb --to-rpm --to-tgz file.pkg
sudo alien -d -r -t file.tar.gz

만약 패키지에 해당 형식 전용 스크립트가 포함되어 있다면, --scripts 또는 -c 플래그를 사용해 스크립트까지 함께 변환할 수 있습니다.

sudo alien --scripts --to-deb file.rpm
sudo alien -c --to-deb file.rpm

변환 후 즉시 설치하기

Alien은 단순히 패키지를 변환하는 것 외에도 변환된 패키지를 곧바로 설치해 주는 기능도 제공합니다. 명령에 --install 또는 -i 플래그를 추가하면 변환이 완료된 직후 패키지가 자동으로 설치됩니다.

예를 들면 다음과 같습니다.

sudo alien --to-rpm --install file.deb
sudo alien -r -i file.deb

변환 시 버전 정보 처리하기

기본적으로 Alien은 패키지의 버전 번호를 자동으로 하나씩 올립니다. 예를 들어 버전 1.17.1인 패키지를 Alien으로 변환하면, 결과물의 버전 번호는 1.17.2가 됩니다.

이러한 기본 동작을 원하지 않는다면 -k 또는 --keep-version 플래그를 사용해 원본 버전을 그대로 유지할 수 있습니다.

sudo alien --to-rpm -k file.deb
sudo alien --to-rpm --keep-version file.deb

마무리: 이제 리눅스에서도 패키지 변환이 쉽습니다

개발자 입장에서 서로 다른 리눅스 배포판마다 패키지를 새로 빌드하는 일은 꽤 번거로운 작업입니다. 이런 문제를 해결하려면 Alien을 활용해 패키지를 다른 리눅스 형식으로 간편하게 변환해 보세요.

다만 Alien은 유용한 도구이긴 하지만, 특정 배포판을 위한 네이티브 패키지를 제대로 개발하는 용도로는 권장되지 않습니다. 또한 패키지를 배포할 때는 프로그램에 필요한 의존성 목록을 반드시 함께 안내하는 것이 좋습니다.