Es ist möglich, aber sehr schwierig, dies richtig zu machen. Wenn Sie verzweifelt sind, können Sie eine neue RPM- .spec
Datei erstellen und eine "gefälschte" Quell-RPM-Datei (SRPM) erstellen, mit der Sie eine resultierende RPM-Datei erstellen können rpmbuild --rebuild
.
Ich würde stattdessen weiter nach der tatsächlichen Drehzahl suchen. Sie geben in Ihrer Frage nicht an, welche, aber ich habe die Erfahrung gemacht, dass Sie im Internet alles finden können, wenn Sie wissen, wie man danach sucht. Ich habe alte Versionen von RPMs für Red Hat-Distributionen gefunden, die seit mehr als 10 Jahren nicht mehr verwendet werden. Daher fällt es mir schwer zu glauben, dass es nirgendwo einen Rest dieser RPM gibt.
Außerdem können Sie häufig zur Quelle der Anwendung zurückkehren, die im RPM enthalten ist, und diese auch zum Rekonstruieren des RPM verwenden. Oft enthalten die Quell-Apps eine erforderliche .spec
Datei, mit der das RPM neu erstellt wird.
Zuletzt könnten Sie die Quelle und die .spec
Datei von einem Build-Service wie Koji für Red Hat-basierte Distributionen erhalten. SuSE unterhält auch ähnliche Build-Services, sodass Sie diese durchsuchen können, um alte Build-Artefakte zu erhalten.
Nehmen Sie die Binärdateien so wie sie sind
Mit dieser Methode können Sie die tatsächlichen ausführbaren Dateien von einem System abrufen und für die Bereitstellung auf einem anderen System tarieren.
Maschine A.
$ rpm -ql <packageNameHere> | xargs tar -zcvf /tmp/program.tgz
Maschine B.
$ tar -zxvf /path/to/your/program.tgz
SLES-Version von RPM
Laut einem der Beiträge in diesem Thread: Re: Wie man RPM aus installierten Paketen rpm
auf SLES erstellt, soll der Schalter haben --repackage
. Dies ist in der Red Hat-Version (in Fedora oder CentOS) nicht vorhanden. Aber laut dem Beitrag können Sie es so verwenden:
$ rpm -e --repackage <somepackage>
Danach finden Sie Ihre Drehzahl hier verfügbar:
/var/spool/repackage
Verwenden von rpmerizor
Rpmerizor ist ein Tool / Skript eines Drittanbieters, das Sie installieren können und das Quelldateien in ein entsprechendes RPM neu verpackt. Die Verwendung dieses Skripts ist hier mit dem Titel: rpmerizors Manpage zugänglich .
Auszug
Rpmerizor ist ein Skript, mit dem Sie aus installierten Dateien ein RPM-Paket erstellen können. Sie müssen lediglich Dateien in der Befehlszeile angeben und einige interaktive Fragen beantworten, um die RPM-Metadaten (Paketname, Version ...) zu füllen. Sie können es auch im Batch-Modus mit Befehlszeilenoptionen für Metadaten verwenden.
Verwenden von rpmrebuild
Nicht zu verwechseln mit dem Build-Tool rpmbuild
. Es rpmrebuild
ist ein weiteres Skript eines Drittanbieters, mit dem Sie ein bereits installiertes RPM neu verpacken können.
Auszug
rpmrebuild ist ein Tool zum Erstellen einer RPM-Datei aus einem Paket, das bereits in einer grundlegenden Verwendung installiert wurde. Für die Verwendung von rpmrebuild sind keine Kenntnisse zum Erstellen von RPM erforderlich. (Unter Debian ist das entsprechende Produkt dpkg-repack).
Beispiel
Angenommen, wir möchten den openssh-Server neu verpacken.
$ rpm -aq | grep openssh-server
openssh-server-6.2p2-8.fc19.x86_64
Packen Sie es jetzt ein:
$ rpmrebuild openssh-server-6.2p2-8.fc19.x86_64
/usr/lib/rpmrebuild/rpmrebuild.sh: WARNING: some files have been modified:
..?...... c /etc/ssh/sshd_config
..?...... c /etc/sysconfig/sshd
Do you want to continue ? (y/N) y
Do you want to change release number ? (y/N) n
result: /root/rpmbuild/RPMS/x86_64/openssh-server-6.2p2-8.fc19.x86_64.rpm
Verweise