쉘에서 직접 RPM 패키지를 푸는 방법 |
1. 개 요
RPM(Redhat Pacakge Manager)는 레드햇 리눅스 사에서 개발된 패키징 도구로, 레드햇(페도라), 센트OS, 오픈수세, 오픈맨드리바, Mageia, PCLinuxOS 등 레드햇 계열및 파생 배포판에서 많이 사용되고 있습니다. No1.Linux는 PCLinuxOS를 모태로 하고 있기 때문에 패키징 방식을 PCLinuxOS를 따라 RPM 방식으로 다양한 오픈소스들을 패키징하고 있습니다. RPM 패키지에 대한 선호는 사용자마다 각기 다릅니다만, 필자는 데비안의 deb 방식에 비해 RPM를 선호하는 편이기 때문에 데비안이나 우분투를 사용하지 않는 이유 중의 하나가 여기에 있습니다. 물론 RPM이 패키징 방식에 있어서 최고다 최상이다라 할 수 없지만, 개인적으론 패키지 작업을 하고 패키지를 설치하는데 있어서는 RPM 방식이 편리해서 좋긴 합니다.
레드햇 계열의 배포판이나 넘버원 리눅스를 사용하는 경우에 있어서 패키지 설치도구를 yum, dnf 나 apt, 시냅틱을 사용하는데, 이들 도구를 사용하지 않고, rpm파일을 직접 풀거나 특정 파일만 추출하고 싶을 때도 있을 것입니다. 이 팁 강좌는 이러한 목적을 위해서 배포판의 패키지 설치 도구를 이용하지 않고, RPM 패키지를 푸는 방법에 대해서 다루고자 합니다.
2. RPM 패키지 푸는 방법 How to extract RPM packages
★ 쉘에서 RPM 패키지를 풀고 싶다면
쉘에서 rpm 패키지를 직접 풀려면 rpm 패키지와 cpio 패키지에 포함되고 있는 rpm2cpio와 cpio 두 개의 도구를 이용하여 다음과 같이 풉니다.
rpm2cpio 패키지명 | cpio -idv 상기 명령을 통해 rpm 패키지를 작업한 경로에서 풀 수 있습니다. 이에 대해 자세한 것은 다음 링크의 문서를 참고하기 바랍니다.
★ rpm 패키지에서 특정만 추출하고자 한다면
앞서 살펴 보았던 명령 마지막에 추출하고자 하는 파일명을 명시해 주면 됩니다.
rpm2cpio 패키지명 | cpio -idv 경로/파일명
이에 대해 자세한 것은 다음 링크의 문서를 참고하기 바랍니다.
★ tar 처럼 풀 수 있는 도구는 없을까?
No1.Linux 2018 Repository에서는 unrpm 패키지를 지원합니다. 리포지토리 서버 정보를 업데이트한 후에 apt-get install unrpm를 하게 되면 unrpm 스크립트 도구를 설치할 수 있습니다.
unrpm를 설치한 후에는 unrpm 명령으로 원하는 rpm 패키지 파일을 설치할 수 있게 되는데, unrpm 파일은 앞 서 살펴보았던 rpm2cpio 도구를 사용하여 쉽게 RPM 패키지를 설치해 주는 스크립트입니다.
이 스크립트의 사용법은 다음과 같습니다.
파일 목록보기
unrpm -l
파일 풀기
unrpm -x
<풀 경로명> ices-2.0.2-4no1linux.2018.x86_64.rpm RPM 패키지가 있다고 가정할 때 이 패키지의 파일 목록을 확인하려면 다음과 같이 실행하면 됩니다.
unrpm -l ices-2.0.2-4no1linux.2018.x86_64.rpm
이 패키지를 풀고자 할 때는 다음과 같이 풀어질 경로를 지정하여 실행하면 됩니다.
unrpm -x ices-2.0.2-4no1linux.2018.x86_64.rpm /tmp/ices
★ MC(Midnight Commander)에서 RPM 패키지를 풀 수 있을까?
mc에서도 RPM 패키지 내용물을 볼 수 있으며, 패키지에 대한 정보와 패키지내의 내용물을 풀 수 도 있습니다. mc를 실행하여 RPM 패키지 파일을 선택하여 엔터키를 누릅니다.
그러면 다음과 같이RPM 패키지 안의 정보가 보여집니다.
INFO 디렉토리와 CONTENTS.cpio, HEADER, INSTALL, UPGRADE 등의 파일들이 보여집니다. 이 가운데 CONTENTS.cpio 파일에 RPM 패키지의 내용물을 담겨져 있습니다. 이 파일을 선택하여 엔터키를 누르면 RPM 패키지의 파일들이 나타납니다.
이제 RPM 패키지내의 내용물들이 보이므로, 원하는 파일들을 Ins키를 이용하여 선택한 다음 F5키를 눌러 옆 창으로 복사할 수 있습니다.
이렇게 mc를 이용하면 RPM 패키지의 내용 파일들을 확인할 수 있을 뿐만 아니라, rpm2cpio 도구를 사용하지 않고도 패키지 안의 파일들을 원하는 경로로 한방에 쉽게 추출할 수 있습니다.