如何列出 SUSE 中已安裝軟體包的補丁?

如何列出 SUSE 中已安裝軟體包的補丁?

假設我正在使用一個名為“hello”的程序,該程序是我使用 zypper 下載的。問題是如何查看這個 hello 套件中是否包含特定的 .patch?

基本上,我認為我需要 rpm 原始檔(但如何使用 zypper 找到它?),然後檢查unrpm是否包含 *.patch 檔案。這是正確的還是有其他方法?

答案1

zypper您可以使用's指令下載 src.rpm source-install

zypper si -D --download-only hello將下載 .src.rpm,忽略建置包所需的任何依賴項。

您可以在 /var/cache/zypp/packages/repo/src/hello-version.src.rpm 中找到 .src.rpm。

然後,您可以完成解壓縮包的正常程序。

% rpm2cpio /var/cache/zypp/packages/Virtualization/src/qemu-2.1.0-260.12.src.rpm | cpio -idmv
0001-XXX-dont-dump-core-on-sigabort.patch
0002-XXX-work-around-SA_RESTART-race-wit.patch
0003-qemu-0.9.0.cvs-binfmt.patch
0004-qemu-cvs-alsa_bitfield.patch
<...>

答案2

# zypper patches | grep Installed

qua-sles12-sp1-updates-x86_64              | CL-SUSE-SLE-SERVER-12-SP1-2015-1001    | security    |          | Installed
qua-sles12-sp1-updates-x86_64              | CL-SUSE-SLE-SERVER-12-SP1-2015-1016    | security    |          | Installed
qua-sles12-sp1-updates-x86_64              | CL-SUSE-SLE-SERVER-12-SP1-2015-1022    | security    |          | Installed
qua-sles12-sp1-updates-x86_64              | CL-SUSE-SLE-SERVER-12-SP1-2015-1027    | security    |          | Installed
qua-sles12-sp1-updates-x86_64              | CL-SUSE-SLE-SERVER-12-SP1-2015-1028    | bugfix      |          | Installed
qua-sles12-sp1-updates-x86_64              | CL-SUSE-SLE-SERVER-12-SP1-2015-828     | bugfix      |          | Installed
qua-sles12-sp1-updates-x86_64              | CL-SUSE-SLE-SERVER-12-SP1-2015-846     | security    |          | Installed

相關內容