Wiki-Artikel über rpmbuild

Michael Schwendt mschwendt at gmail.com
Sun Mar 4 22:07:53 UTC 2012


On Sun, 4 Mar 2012 22:33:30 +0100 (CET), OR (Olaf) wrote:

> > > Als User brauchst du maximal drei Befehle: "make" & "make install".
> > > Manchmal noch eine "configure".
> >
> > Äh? "configure" hat mit "Make" erstmal überhaupt nichts zu tun.
> 
> Es ging um die Sicht der User auf make. Und selbst durch Autotools
> ändert sich nichts für die Benutzung. Die Schnittstelle/Interface
> bleibt gleich. Das sollte die Kernaussage sein.

rpmbuild kennt nur _drei_ Aufrufarten: Angabe einer .spec Datei,
Angabe eines Archives und Angabe eines src.rpm Paketes.

Du kritisiertest bisher die "Programmierung von spec Dateien",
nicht die Verwendung von rpmbuild.

Mal tatsächlich angenommen, ein Nutzer möchte ein RPM Paket erstellen
lassen, anstatt fertige Pakete nur zu installieren, so ist der Aufruf
sehr simpel a la "rpmbuild --rebuild beispiel.src.rpm". Bietest Du kein
src.rpm an, sondern ein Tar o.ä. Archiv, ist der Aufruf nur leicht anders
gemäß "man rpmbuild".

Übrigens, Make beschränkt sich auch nicht "make all" und "make install".
Woher weiß der Nutzer von "make install-plugins", "make clean", "make dist",
"make release", "make check", "make test" und weiteren targets, die definiert
sein können? Bei "configure" verhält es sich ebenso. Die angebotenen Optionen
(--with-foo/--without-foo, --enable-foo/--disable-foo) variieren. Eine
spec Datei läßt sich ebenfalls durch --with/--without Optionen erweitern.
Ich sehe da bei der Verwendung nicht den eklatanten Unterschied, den Du
auszumachen meinst.

> > Ja nun, bist Du auf dieser Mailing-Liste, um etwas zu RPM und rpmbuild
> > lernen zu wollen? Oder liegt Dir mehr am Herumstänkern?
> 
> Wenn man was lernen will, darf man sich nicht über Ungereimtheiten
> wundern?

Doch, doch. Das "Dürfen" ist hier nicht die Frage. Nur ist das Ziel
fraglich. Und die Schwerpunktsetzung auch. Eine von vornherein zu
negative Sichtweise 

> > Du nennst Dich selbst "Make Guru".
> 
> Zitiere wörtlich! Was hatte ich geschrieben?

Gerngeschehen:

| Nach ca. 30 Min. hast du dein erste funktionierendes Makefile gebaut.
| Nach einer Woche bist du "make-Guru".

Sowie:

| Nach einer halben Stunde bist du mit rpm noch nicht viel weiter als
| am Anfang. Nach einer Woche tut es rpmbuild irgend wie, aber nicht so
| wie du es willst.

Du willst jetzt doch nicht im Nachhinein die Meßlatte für den Make Guru-Status
höherlegen, weil Du Dich etwa noch nicht eine Woche mit Make befasst hast,
oder? ;-)

> Bisher dachte ich, ich gehe es nur falsch an. Aber offenbar ist es wirklich
> sehr verkorkst portable rpmbuild Regeln zu schreiben, die User nicht überfordern
> und mit einem Befehlen auskommen: make dist-rpm.

Was hat denn nun Portabilität mit der Sache zu tun?
Der Aufruf von rpmbuild ist doch überall gleich. Wo siehst Du denn da
Probleme?
Und Du willst doch sogar den User von rpmbuild abschotten und ihn
stattdessen Make verwenden lassen. Die Lösung für Dein Makefile wurde
mehrfach erwähnt. Und Christophs Vorschlag,

  rpmbuild -ta blubb.tgz

bietet sich geradezu an, wenn Du ohnehin einen tarball erzeugst.
Alternativ (und für beliebige SourceX Dateien):

  rpmbuild -ba blubb.spec --define "_sourcedir $(pwd)"


More information about the de-users mailing list