Erstellen eines einfachen RPM unter Oracle Linux (RedHat) mit rpm build

2761
random

Ich möchte ein RPM mit einem bestimmten Benutzer von einem angegebenen Build-Verzeichnis aus erstellen. Das RPM enthält mehrere Dateien oder eine GZIP-Datei und sollte diese Dateien an einen voreingestellten Speicherort kopieren (damit sie verschiebbar sind).

Ich war auf der Fedora-Site und anderen Tutorials (einschließlich Stack Overflow), aber nichts scheint zu funktionieren. Alles, was ich (am besten) bekommen konnte, war nur eine src.rpm, die aus irgendeinem Grund einen Fehler beim Schreiben in% sourcedir / usr / src / redhat / SOURCES ausgibt.

Alles, was ich will, ist eine Spezifikationsdatei, die ein RPM erstellen kann, das eine GZIP-Datei oder mehrere Nur-Text-Dateien verarbeiten kann, diese entpacken / in den voreingestellten Speicherort kopieren kann. Der RPM-Build sollte eine RPM-Datei im RPM-Verzeichnis erstellen.

Ich bin nicht an anderen Tools interessiert, die RPMs erstellen, sondern wie man RPMs erstellt.

Verwendung der RPM-Version 4.4.2.3

0

1 Antwort auf die Frage

1
Sami Laine

Es wird ein bisschen mehr Informationen geben, als Sie erbeten haben. Ich gehe davon aus, dass das ursprüngliche Frageposter weiß, wie rpmbuild funktioniert, aber vielleicht tut es nicht jemand anderes.

Einfaches Verfahren zum Erstellen eines RPM, bei dem zwei Dateien installiert werden.

Erstellen Verzeichnishierarchie für rpmbuild: mkdir -p ~/rpmbuild/.

Kopieren Sie einige Beispiel Inhalte auf Ihren Dummy RPM - Dateien (diese benötigt werden, wenn die SPEC - Datei später in diesem Beispiel): cp /etc/profile ~/rpmbuild/SOURCES/dummy.file && cp /etc/shells ~/rpmbuild/dummy.another.file.

Fügen Sie folgendes ein ~/rpmbuild/SPEC/dummyrpmfile.spec:

Summary: A dummy RPM. Creates file /etc/dummy/file. Name: dummyrpmfile Version: 0.1 Release: 1 Vendor: Super User Packager: Super User License: GPL Group: System Environment/Base BuildArch: noarch Source0: dummy.file Source1: dummy.another.file Prefix: /etc/dummy   %description A dummy RPM. Creates file /etc/dummy/file. And also directory /etc/dummy. Very cool package. You should install this. Oh, yes, and it also makes /etc/dummy/another.file too.  %install # create directory /etc/dummy % -d -m0755 %/etc/dummy # and copy the file from SOURCES/file to <buildroot>/etc/dummy % -m 0644 % %/etc/dummy/file % -m 0644 % %/etc/dummy/another.file  %files /etc/dummy/file /etc/dummy/another.file 

Dann laufen cd ~/rpmbuild && rpmbuild -ba SPEC/dummyrpmfile.spec.

Dies sollte eine "noarch" -RPM für den Fall erzeugen, dass es sich nur um Daten handelt, die sich beispielsweise nicht zwischen 32-Bit- und 64-Bit-Architekturen unterscheiden. Ergebnisse sollten in sein ~/rpmbuild/RPMS/noarch/dummyrpmfile.rpm.

Hilfe-Links: So funktioniert Prefix .

Danke für deine Antwort. Was ich nicht sehe, ist, wie man den Installationsort festlegt. Ich habe etwas über "Prefix" gelesen. Kannst du es in dein Beispiel aufnehmen? Vielen Dank. vor 10 Jahren 0
You need to create the appropriate director structure into your build directory. In case you want your files end up in `/home/foouser/bardir/bazdir/`, then just make %/home/foouser/bardir/bazdir/ and go from there. I'm not sure if I understood your question correctly, though. Sami Laine vor 10 Jahren 0
Ich meinte, wie man das RPM einrichtet, so dass Sie den Installationspfad zur Installationszeit angeben können, indem Sie rpm --prefix verwenden. vor 10 Jahren 0
Jetzt lese ich dich. Dies kommt von ganz oben in meinem Kopf, da ich keine Gelegenheit habe, es zu testen. Fügen Sie jedoch einfach `Prefix:` hinzu, und Sie können `rpm --relocate` verwenden, um / usr / local zu dem zu ändern, was Sie in diesem Beispiel wollen. Weitere Informationen finden Sie unter http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch10s05.html. Sami Laine vor 10 Jahren 0
Update: Das Präfix-Tag ist hier eindeutig dokumentiert: [http://www.rpm.org/max-rpm/s1-rpm-reloc-prefix-tag.html(((ttp://www.rpm.org/max- rpm / s1-rpm-reloc-prefix-tag.html). Ich werde Ihr Beispiel aktualisieren, um die Verwendung des Präfixes deutlicher zu machen. vor 10 Jahren 0