it-swarm.com.de

Extrahieren Sie die Spezifikationsdatei aus dem RPM-Paket

Gibt es eine Möglichkeit, die Spezifikationsdatei aus dem RPM-Paket zu extrahieren (ich habe nur eine RPM-Datei)

nicht von

   rpm --scripts -qp my-great-app-1.1.2.rpm 

(Bei dieser Syntax bekommt die Spec-Datei nicht nur die Skripte aus der rpm)

37
jon

Installieren Sie rpmrebuild und extrahieren Sie die Spezifikationsdatei Ihres rpm file oder Ihres bereits installierten Pakets.

Beispiele:

rpmrebuild --package --notest-install -e Oracle-instantclient-basic-10.2.0.4-1.x86_64.rpm
rpmrebuild -s Hercules.spec Hercules
24
reichhart

Die Spezifikationsdatei wird nicht in binären RPMs gespeichert, es sei denn, der Packager hat sie aus irgendeinem Grund speziell aufgenommen (und es gibt wirklich keinen Grund, dies zu tun). Die einzige Information, die Sie von einer binären Drehzahl erhalten können, ist die Information, dass rpm -qi <package> gibt zurück und die Dateien, die rpm -ql <package> Listen. Wenn Sie mehr benötigen, müssen Sie das Quellpaket finden. Wenn Google/die Website des Anbieters dies nicht für Sie bereitstellt, sollten im Feld "Packager" Kontaktinformationen für alles angegeben werden, was von einer kompetenten Person verpackt wurde. Im Folgenden finden Sie ein Paket, das mit RHEL geliefert wird, und ein Paket eines Drittanbieters:

$ rpm --qf '%{Packager}\n' -q redhat-release
Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
$ rpm --qf '%{Packager}\n' -q cfengine-community
CFEngine AS ([email protected])

Dort haben Sie eine Website bzw. eine E-Mail-Adresse, auf der Sie nach einer Spezifikationsdatei oder einer srpm-Datei fragen können.

13
dannysauer

du könntest benutzen

yumdownloader --source < something.rpm

dann:

rpm2cpio packagename | cpio -ivd
7
kamal

Gemäß der Antwort von @ RumpleStiltskin befinden sich die ursprünglichen Spezifikationsdateien in Quell-RPMs, die extrahiert werden können. Führen Sie Folgendes aus, um die Quell-RPMs abzurufen:

yum install yum-utils # Only required if yumdownloader is not installed
yumdownloader --source <package name, like 'emacs-nox'>

Dadurch wird das Paket im aktuellen Verzeichnis installiert. So extrahieren Sie es:

rpm2cpio <package name>.src.rpm | cpio -civ '*.spec'

Die Datei .spec Befindet sich in Ihrem aktuellen Verzeichnis.

Wenn Sie yum-utils aus irgendeinem Grund nicht installieren können, schauen Sie sich die Dateien in /etc/yum.repos.d/ An und suchen Sie nach Abschnitten, die sich auf Quell-RPM-Repositorys beziehen. Sie können die Werte für baseurl in Ihren Browser eingeben und manuell nach dem Quellpaket suchen. Das Extrahieren von .spec Erfordert weiterhin rpm2cpio.

7
Rick Smith

spezifikationsdateien sind normalerweise nicht in U/min. Sie sind in Quellendrehzahl.

6

rpmrebuild ist dein Freund. Verwenden

rpmrebuild -e -p <rpm_file>

Während die Spezifikationsdatei in einem Editor geöffnet wird, können Sie auch Änderungen an der RPM-Spezifikation vornehmen.

5
esmeagol

Mit diesem einfachen Befehl konnte ich alle meine .spec-, source- und Patches-Dateien abrufen

$ rpmbuild --recompile --noclean ./SRPMS/somerpm.src.rpm

Jetzt kann man spec, src ändern und RPM oder SRPM neu erstellen.

0
Vipin Tripathi