rpmbuild & suse linux 10.0

Dieses Thema im Forum "Linux-Distributionen" wurde erstellt von tatze, 4. April 2006.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. tatze

    tatze Byte

    Registriert seit:
    27. November 2002
    Beiträge:
    12
    rpmbuild m. Suse 10.0

    Moin!

    aktuell will ich firefox unter suse 10.0 installieren. Ziehe ich mir
    also das tar.gz file. Nun ists ja unter suse so, dass man das
    ganze als rpm Archiv baut und dann dieses fein über den
    rpm-packetmanager installiert - richtig?

    Wenn ich nun also rpmbuild -ta ausführe bekomme ich
    folgenden Salat:

    BLA-02L:~ # rpmbuild -ta firefox-1.5.0.1.tar.gz
    error: Name field must be present in package: (main package)
    error: Version field must be present in package: (main package)
    error: Release field must be present in package: (main package)
    error: Summary field must be present in package: (main
    package)
    error: Group field must be present in package: (main package)
    error: License field must be present in package: (main package)

    Was sagt mir denn das jetzt?

    danke fürs antworten
     
  2. Rattiberta

    Rattiberta Halbes Gigabyte

    Registriert seit:
    22. März 2003
    Beiträge:
    5.526
    Der einfachste Weg ist, sich ein fertiges rpm-Paket zu holen. :)

    Versuch es doch mal hier:
    http://rpm.pbone.net/

    (rpm-Pakete selberbasteln tue ich nur, wenn es sich dabei um ein kein so populäres Programm handelt, das in fertiger Form "an jeder Ecke" angeboten wird.)

    MfG
    Rattiberta
     
  3. Affirmation

    Affirmation Kbyte

    Registriert seit:
    16. März 2005
    Beiträge:
    152
    Das SPEC-File fehlt wohl einfach im gepackten Archiv bzw. ist nicht korrekt (wohl ersteres).

    Es gibt 2 Arten von Installationen:
    1. Installation via Packetmanager - hier liegt das Programm als rpm, deb etc vor)
    2. Installation per Hand / Installer - hier liegt das Programm als ausführbare Datei vor oder wahlweise verpackt als tar.gz, tar.bz2 etc.. (hier bist du allerdings später auf die Gnade der Deinstallationsroutine des Programmes angewiesen)

    Eine (neue) RPM baut man generell aus einer sog. src.rpm - das ist eine Datei, die aus einem SPEC-File (das erklärt praktisch wo welche Datei bei der Installation hinmuss, was noch zu tun ist - beispielsweise das Programm kompilieren - welche Voraussetzungen nötig sind usw...) und dem Quellcode (seltener: fertig kompilierter Binärcode) besteht (in gepackter Form). Mit denen kann man die Installations-RPM nachbauen (eben mit besagtem rpmbuild), falls bespielsweise keine fertige (Installations-)RPM vorliegt (weil beispielsweise die Architektur oder der Distributor nicht offiziell unterstützt wird).


    Kurz mal anschaulich verdeutlicht:
    Sei foo.tar.gz der Quellcode, foo.spec das SPEC-File.
    foo.spec + foo.tar.gz erstellen -> "rpmbuild -ba foo.spec" -> foo.<rechner-architektur>.rpm + foo.src.rpm
    Nun wird halt generell die Architektur-spezifische RPM weitergegeben. Allerdings kannst du halt mittels der auch erstellten src.rpm das Programm für deinen PC neu kompilieren.


    Zusammengefasst:
    Du versuchst eine fertig kompilierte (gepackte) Version von Firefox noch einmal mit rpmbuild zu einer RPM zu bauen. Das geht zwar technisch (man kann im SPEC-File sagen, dass man nicht kompilieren will, sondern halt nur Dateien an einen Ort schieben will) ist aber praktisch nicht sinnvoll - weiterhin fehlt hier einfach das nötige SPEC-File.
    Wahlweise solltest du daher eine fertige RPM deines Distributors nutzen oder die tar.gz entpacken und die Installationsroutine da aufrufen (generell ist der Weg über die RPM wegen der sauberen Deinstallation zu empfehlen).
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen