Wie kann ich eine vorhandene RPM-Datei für die Installation auf einem Fedora 11-System ändern?


0

Ich habe ein RPM, das wir auf unseren Produktionssystemen installieren und das ich ändern möchte, damit das Betriebssystem-Installationsprogramm nach der Installation keine Änderungen am System vornehmen muss. Die Distribution ist ziemlich alt (und leider können wir sie nicht auf eine neuere updaten) - Fedora 11.

Gibt es eine Methode, mit der ich das RPM entpacken, die Datei ändern und dann neu packen kann?

Andere Lösungen, die ich gesehen habe, verweisen auf die Dienstprogramme "mock" und "mc", die ich nicht habe.


2
Fedora 11 ist 7 Jahre nach EOL . Aktualisieren Sie auf etwas Aktuelles, um Unterstützung zu erhalten.
Jakuje

Antworten:


0

Wenn das RPM-Paket, das Sie entpacken möchten, für Fedora 11 oder älter ist, kann Fedora 11 {rpm, rpm2cpio} die Datei mit folgendem Befehl extrahieren unPack_rpm.sh:

#!/bin/bash
# Purpose: Unpack RPM archives (by @unSpawn)
# Args: /path/to/archive
# Deps: Bash, GNU utils, RPM
rpmDetails() { for Q in changelog provides requires scripts triggers triggerscripts; do 
 rpm -q -p --${Q} "${f}" 2>&1 | grep -v NOKEY > "${Q}.log"; done; }
rpmUnpack() { f=$(readlink -f "${f}"); file "${f}"|grep -q "RPM.v" && \
 { d=$(basename "${f}" .rpm); d="./${d:=ERROR_$$}"; mkdir -p "${d}" && \
 { cd "${d}" && rpm2cpio "${f}" | cpio -idmv && rpmDetails "${f}"; }; }; }
for f in $@; do rpmUnpack "${f}"; done
exit 0

Wenn Sie die entpackten Dateien bearbeitet haben, kopieren Sie das Hauptverzeichnis / directory nach BUILDROOT /. Wenn / falls rpmbuild -bb name.specBerichte "nicht gefunden" werden, erstellen Sie in BUILDROOT / den Ordner mit dem gewünschten App-Namen und kopieren Sie Ihre Dateien dorthin. Und renn rpmbuild -bb name.specnochmal.

Mein empfohlenes rpmbuild-Setup: http://www.linuxquestions.org/questions/linux-software-2/need-rpm-package-for-php-version-5-2-7-and-up-on-redhat-5 -1-a-766486 / # 13


Danke, das ist sehr nützlich. Ich habe jedoch eine weitere Frage: Nach dem Entpacken kann ich die zu ändernde Datei ändern. Ist es nur ein Fall, in dem die Quellen (in ihren Verzeichnissen) in das Verzeichnis rpmbuild / SOURCES kopiert und dann eine Spezifikationsdatei erstellt / abgerufen und in rpmbuild / SPECS abgelegt werden, bevor der Befehl rpmbuild ausgeführt wird? Oder muss ich noch etwas tun?
B. SAUNDERS

Nicht Quelle. Die Dateien können in jeden neuen Ordner kopiert werden. Oder zu BUILDROOT /. Siehe meine bearbeitete Antwort.
Knud Larsen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.