假设我正在使用一个名为“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