[Mac/Linux] 使用 rpm2cpio 指令解開 RPM 檔案

[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,129 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料