Nehmen wir an, ich verwende ein Programm namens „Hello“, das ich mit Zypper heruntergeladen habe. Die Frage ist, wie ich feststellen kann, ob ein bestimmter Patch in diesem Hello-Paket enthalten ist.
Im Grunde denke ich, dass ich die RPM-Quelldatei brauche (aber wie kann ich sie mit Zypper finden?) und dann unrpm
überprüfen muss, ob die *.patch-Datei enthalten ist. Ist das richtig oder gibt es einen anderen Weg?
Antwort1
zypper
Sie können eine src.rpm mit dem Befehl herunterladen source-install
.
zypper si -D --download-only hello
würde die .src.rpm-Datei herunterladen und dabei alle zum Erstellen des Pakets erforderlichen Abhängigkeiten ignorieren.
Sie finden die Datei .src.rpm unter /var/cache/zypp/packages/repo/src/hello-version.src.rpm.
Sie können dann den normalen Vorgang zum Extrahieren des Pakets durchführen.
% 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
<...>
Antwort2
# 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