RPM Paket bauen mit rpmbuild

Hinweis: In dem Thema RPM Paket bauen mit rpmbuild gibt es 5 Antworten. Der letzte Beitrag () befindet sich ganz unten auf dieser Seite.
  • Guten Mittag,


    ich möchte unter 42.3 ein Paket aus dem Quell RPM selbst bauen, das *.src.rpm ist nun installiert.
    Zum Bauen nehme ich rpmbuild.


    Nun, die Syntax wäre dann rpmbuild --target x86_64 -bb /usr/src/packages/SPECS/foo.spec


    Meine Frage bezieht sich auf die Option -bb. Wenn ich es richtig verstehe, wird bei -bb das Paket nicht nur gebaut, sondern auch gleich installiert.


    Genau das will ich nicht. Ich will nur das RPM bauen, nicht automatisch installieren lassen.



    Wäre dann -bc die korrekte Option? Kommt dann auch das fertige RPM dabei heraus?



    Grüße

  • Zitat von man rpmbuild

    -bb Build a binary package (after doing the %prep, %build, and %install stages).
    -bp Executes the "%prep" stage from the spec file. Normally this involves unpacking
    the sources and applying any patches.
    -bc Do the "%build" stage from the spec file (after doing the %prep stage). This
    generally involves the equivalent of a "make".


    Die Manpage scheint dir zuzustimmen.


    Was meinst du mit "fertiges RPM"?
    Und was bezweckst du damit?

  • RPM Build-Umgebung aufsetzen und RPM selbst bauen [Linux - Wissensdatenbank]

    Zitat

    Anschließend legen wir im Home-Verzeichnis unseres RPM-Maintainers die nötigen Unterverzeichnisse an.
    $ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}Zum Schluß setzen wir noch in der Konfigurationsdatei .rpmmacros im Homeverzeichnis des Nutzers das gearade angelegt Arbeitsverzeichnis.
    $ echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros

    Ich hab mir dann in dem Verzeichnis ~/rpmbuild noch das temporäre Bauverzeichnis hinzugefügt:

    Code
    mkdir ~/rpmbuild/tmp

    Und in die .rpmmacros eintragen:


    Code
    echo '%_tmppath %(echo $HOME)/rpmbuild/tmp/' >> ~/.rpmmacros



    Ich baue nie mit dem src.rpm, ich entpacke das, schiebe die Dateien in die entsprechenden Ordner SOURCE und SPEC, wechsel ins Verzeichnis SPEC und baue dort ganz normal mit rpmbuild -ba --noclean NAME.spec.


    Und mit rpmbuild wird nichts installiert........
    Da rpmbuild ja als User aufgerufen wird!!!!
    Installiert wird das rpm hinterher mit rpm, zypper oder Yast(2) als root.

    Für den Inhalt des Beitrages 112001 haftet ausdrücklich der jeweilige Autor: Sauerland

  • Und mit rpmbuild wird nichts installiert........
    Da rpmbuild ja als User aufgerufen wird!!!!

    So, 100 Jahre später in meinem Thread........
    Als User hat man ja keine Schreibrechte in /usr/src/.... ich hab dort immer als root gearbeitet mit rpmbuild.
    Mal ganz doof gefragt, wenn ich als root unterwegs bin in /usr/src/packages/ und benutze dort rpmbuild -bb installiert dieser Befehl dann das gebaute Pakte auf dem Rechner, auf dem man gerade rpmbuild aufruft?
    Das war nämlich meine eigentliche Befürchtung, ich wollte ein Paket bauen (namentlich das mit den DRM Modulen, dieser SUSE Backport von Kernel 4.9) aber sicher sein, dass das Paket nicht beim Bauen auch sofort installiert wird....


    Gruß

  • Du kannst auch mit

    Code
    rpmbuild --rebuild /Pfad/Name.src.rpm

    direkt aus dem src.rpm bauen.


    Das fertige rpm liegt dann in einem Ordner unterhalb von:
    /usr/src/packages/RPMS/
    Hier sind für dich nur iX86 (i mit 3 bis 6 ersetzen), noarch und x86_64 von Belang.


    Oder wenn du meinen Tip befolgt hast in deinem /home/Username:
    rpmbuild/RPMS/
    Dort sollten nur 3 Ordner vorhanden sein und somit ist die Suche einfacher......

    Für den Inhalt des Beitrages 112365 haftet ausdrücklich der jeweilige Autor: Sauerland

  • Noch einmal ganz langsam geschrieben:
    rpmbuild installiert nichts.


    Und da man nicht als root bauen sollte, mein Tip in Post #3..........

    Für den Inhalt des Beitrages 112366 haftet ausdrücklich der jeweilige Autor: Sauerland