웹사이트 검색

Alien을 사용하여 RPM에서 DEB로, DEB에서 RPM 패키지로 변환하는 방법


이미 알고 있듯이 Linux에 소프트웨어를 설치하는 방법은 많습니다. 배포판에서 제공하는 패키지 관리 시스템(몇 가지 예를 들면 aptitude, yum 또는 zypper 등)을 사용하거나 소스에서 컴파일(다소 요즘은 드물지만 Linux 초기에는 사용할 수 있는 유일한 방법이었습니다) 또는 .deb<와 함께 dpkg 또는 rpm과 같은 하위 수준 도구를 활용합니다..rpm 독립형, 사전 컴파일된 패키지.

이 기사에서는 .rpm.deb로(또는 그 반대로) 다양한 Linux 패키지 형식 간에 변환하는 도구인 alien을 소개합니다. 반대)가 가장 일반적으로 사용됩니다.

이 도구는 작성자가 더 이상 유지 관리하지 않고 자신의 웹 사이트에 외계인이 항상 실험적 상태로 남아 있을 것이라고 명시하더라도 특정 유형의 패키지가 필요하지만 다른 패키지 형식에서만 해당 프로그램을 찾을 수 있는 경우 유용할 수 있습니다.

예를 들어, 잉크젯 프린터용 .deb 드라이버를 찾고 있었는데 아무것도 찾을 수 없을 때 alien이 하루를 구해주었습니다. 제조업체는 .rpm 패키지만 제공했습니다. Alien을 설치하고 패키지를 변환한 후 얼마 지나지 않아 문제 없이 프린터를 사용할 수 있었습니다.

즉, 중요한 시스템 파일 및 라이브러리는 배포판에 따라 다르게 설정되므로 이 유틸리티를 사용하여 교체해서는 안 된다는 점을 분명히 해야 합니다. 이 문서의 시작 부분에 제안된 설치 방법이 필수 프로그램에 적합하지 않은 경우 최후의 수단으로만 외계인을 사용하십시오.

마지막으로, 이 글에서는 CentOSDebian을 사용하더라도 Alien은 Slackware에서도 작동하는 것으로 알려져 있습니다. Solaris에서도 처음 두 배포판과 해당 제품군 외에.

1단계: Alien 및 종속성 설치

CentOS/RHEL 7alien을 설치하려면 EPELNux를 활성화해야 합니다. Dextop(예, 데스크톱이 아닌 Dextop입니다) 리포지토리 순서:

yum install epel-release
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

이 저장소를 활성화하는 패키지의 최신 버전은 현재 0.5입니다(2015년 8월 10일에 게시됨). 계속 진행하기 전에 http://li.nux.ro/download/nux/dextop/el7/x86_64/에서 최신 버전이 있는지 확인해야 합니다.

rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

그럼 해,

yum update && yum install alien

Fedora에서는 마지막 명령만 실행하면 됩니다.

Debian 및 파생 제품에서는 다음을 수행하십시오.

aptitude install alien

2단계: .deb에서 .rpm 패키지로 변환

이 테스트에서는 대량의 금융 데이터를 처리하기 위해 날짜시간 유틸리티 세트를 제공하는 dateutils를 선택했습니다. .deb 패키지를 CentOS 7 상자에 다운로드하고 .rpm으로 변환한 후 설치합니다.

cat /etc/centos-release
wget http://ftp.us.debian.org/debian/pool/main/d/dateutils/dateutils_0.3.1-1.1_amd64.deb
alien --to-rpm --scripts dateutils_0.3.1-1.1_amd64.deb

중요: (기본적으로 외계인이 대상 패키지의 버전 마이너 번호를 높이는 방법에 유의하세요. 이 동작을 재정의하려면 – 버전 유지 플래그).

패키지를 즉시 설치하려고 하면 약간의 문제가 발생합니다.

rpm -Uvh dateutils-0.3.1-2.1.x86_64.rpm 

이 문제를 해결하기 위해 epel-testing 저장소를 활성화하고 rpmrebuild 유틸리티를 설치하여 다시 빌드할 패키지의 설정을 편집합니다.

yum --enablerepo=epel-testing install rpmrebuild

그런 다음 실행하십시오.

rpmrebuild -pe dateutils-0.3.1-2.1.x86_64.rpm

그러면 기본 텍스트 편집기가 열립니다. %files 섹션으로 이동하여 오류 메시지에 언급된 디렉터리를 참조하는 줄을 삭제한 다음 파일을 저장하고 종료합니다.

파일을 종료하면 재구축을 계속하라는 메시지가 표시됩니다. Y를 선택하면 파일이 지정된 디렉터리(현재 작업 디렉터리와 다름)에 다시 작성됩니다.

rpmrebuild –pe dateutils-0.3.1-2.1.x86_64.rpm

이제 패키지 설치를 진행하고 평소와 같이 확인할 수 있습니다.

rpm -Uvh /root/rpmbuild/RPMS/x86_64/dateutils-0.3.1-2.1.x86_64.rpm
rpm -qa | grep dateutils

마지막으로 dateutils에 포함된 개별 도구를 나열하고 해당 매뉴얼 페이지를 확인할 수도 있습니다.

ls -l /usr/bin | grep dateutils

3단계: .rpm에서 .deb 패키지로 변환

이 섹션에서는 .rpm.deb로 변환하는 방법을 설명합니다. 32비트 Debian Wheezy 상자에서 CentOS 6 OSzsh 셸용 .rpm 패키지를 다운로드해 보겠습니다. 강한> 저장소. 이 셸은 Debian 및 파생 제품에서는 기본적으로 사용할 수 없습니다.

cat /etc/shells
lsb_release -a | tail -n 4

wget http://mirror.centos.org/centos/6/os/i386/Packages/zsh-4.3.11-4.el6.centos.i686.rpm
alien --to-deb --scripts zsh-4.3.11-4.el6.centos.i686.rpm

서명 누락에 대한 메시지는 무시해도 됩니다.

잠시 후 .deb 파일이 생성되어 설치할 준비가 됩니다.

dpkg -i zsh_4.3.11-5_i386.deb

설치 후 zsh가 유효한 쉘 목록에 추가되었는지 확인할 수 있습니다.

cat /etc/shells

요약

이 기사에서는 .rpm을 .deb로 변환하거나 그 반대로 변환하여 해당 프로그램을 저장소나 배포 가능한 소스 코드로 사용할 수 없는 경우 최후의 수단으로 패키지를 설치하는 방법을 설명했습니다. 우리 모두는 언젠가는 외계인이 필요할 것이기 때문에 이 기사를 북마크에 추가하고 싶을 것입니다.

아래 양식을 사용하여 이 기사에 대한 의견을 자유롭게 공유해 주세요.