[Mac/Linux] 使用 rpm2cpio 指令解開 RPM 檔案
今天拿到一個 source RPM 檔案,
想把它解開來看看裡面的內容,
用 7zip 查看一下,裡面是一個 cpio 檔案。
當然我們可以先將 cpio 檔解出來,再用 cpio 指令解開 cpio 檔,
不過其實有另一個更方便的指令 rpm2cpio 可以用囉~
在 Mac 上的話,可以用 Homebrew 安裝 rpm2cpio:
brew install rpm2cpio
在 Redhat/CentOS Linux 上的話,就用 yum 安裝:
yum install rpm2cpio
接著,就可以執行 rpm2cpio <rpm 檔案>,並且結果導給 cpio 指令,
就可以省掉解出 cpio 檔案這個中間過程,
直接把 cpio 裡面包含的所有檔案與目錄解出來了:
testuser@localhost ~ $ rpm2cpio qemu-kvm-rhev-2.12.0-44.el7_8.2.src.rpm | cpio -idmv 0001-Revert-qemu-pr-helper-use-new-libmultipath-API.patch 0003-Initial-redhat-build.patch 0004-Enable-disable-devices-for-RHEL-7.patch 0005-Add-RHEL-7-machine-types.patch 0006-Revert-kvm_stat-Remove.patch 0007-Use-kvm-by-default.patch 0008-add-qxl_screendump-monitor-command.patch 0009-seabios-paravirt-allow-more-than-1TB-in-x86-guest.patch 0010-vfio-cap-number-of-devices-that-can-be-assigned.patch 0011-QMP-Forward-port-__com.redhat_drive_del-from-RHEL-6.patch 0012-QMP-Forward-port-__com.redhat_drive_add-from-RHEL-6.patch 0013-HMP-Forward-port-__com.redhat_drive_add-from-RHEL-6.patch 0014-Add-support-statement-to-help-output.patch 0015-vl-Round-memory-sizes-below-2MiB-up-to-2MiB.patch ......
這裡的 cpio 參數意義如下:
- -i: Extract files from an archive (run in copy-in mode)
- -d: Create leading directories where needed
- -m: Retain previous file modification times when creating files
- -v: Verbosely list the files processed
值得學一下的指令喔~:)
參考資料:Open/Extract RPM File with Freeware on Windows/Mac/Linux, Free Download
(本頁面已被瀏覽過 2,139 次)