SUSE にインストールされているパッケージのパッチを一覧表示するにはどうすればいいですか?

SUSE にインストールされているパッケージのパッチを一覧表示するにはどうすればいいですか?

zypper を使用してダウンロードした「hello」というプログラムを使用しているとします。問題は、この hello パッケージに特定の .patch が含まれているかどうかを確認する方法ということです。

基本的に、rpm ソース ファイルが必要だと思います (ただし、zypper を使用してそれを見つけるにはどうすればよいですか?)。次に、unrpm*.patch ファイルが含まれているかどうかを確認します。これで正しいですか、それとも別の方法がありますか?

答え1

zypperのコマンドを使用して src.rpm をダウンロードできますsource-install

zypper si -D --download-only helloパッケージのビルドに必要な依存関係を無視して .src.rpm をダウンロードします。

.src.rpm は /var/cache/zypp/packages/repo/src/hello-version.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

関連情報