2017-08-22 3 views
0

Ich versuche, ein RPM-Paket für eine ausführbare jar erstellen mit izpack erstellt. Es ist im Grunde ein Installationsassistent, der es einem Benutzer ermöglicht, ein Tool/eine Software zu installieren. Es bietet eine ausführbare jar. So haben wirIzpack ausführbare JAR zu RPM

Java -jar Datei.jar

So initialisieren Sie den Assistenten zu tun. Ich versuche, es in Linux zu automatisieren, indem ich eine rpm erstelle, die dieses jar und eine sh-Datei nimmt, die dieses jar ausführt und die sh-Datei ausführt, wenn ich die rpm-Datei ausführe. Ich bin neu bei rpmbuild und alle Tutorials online sind über das Kopieren eines bestimmten Jar aus der RPM-Datei an einen Zielort, nicht darüber, wie es ausgeführt wird.

Kann mir jemand bieten eine Probe-Spez-Datei die Folgendes

eine RPM-Datei mit .jar Erstellt und .sh Wenn rpm -i file.rpm ausgeführt wird, läuft die .sh-Datei, die wiederum Führt das Glas aus und öffnet den Assistenten.

Ich bin offen für alle anderen Vorschläge, wie Sie Jar automatisch ausführen. Ich versuche im Grunde, eine exe ähnliche Datei für Linux

Vielen Dank im Voraus zu erstellen.

Antwort

0

Ich empfehle nicht dies aus verschiedenen Gründen tun, weil es das genaue Gegenteil von was RPMs tun soll. Sie sollten stattdessen den Installationsprozess auf einem Build-Rechner (als Nicht-Root-Benutzer!) Durchführen und dann die zu installierenden Dateien erfassen.

Warum ist Ihr Ansatz eine schlechte Idee?

  • Installationsskript von dem Benutzer verborgen ist (sie kann nicht einfach die RPM scriptlet abfragen, um zu sehen, welche Änderungen, über Dateien, Sie haben, um ihr System)
  • Die endgültigen installierten Dateien werden nicht in irgendeiner Weise kontrolliert werden , z Sie nicht in der Lage sein zu überprüfen, ob sie (rpm -V) beschädigt worden waren oder die Abfrage, welches Paket installierte sie (rpm -q --whatprovides /path/to/file)
  • „Entfernen“ oder „Upgrade“ wird das Paket nichts wirklich tun, wenn Sie detaillierte schreiben alle behandeln alle diese unbekannten Dateien Skripte
  • die anderen Gründe, warum ich nicht aufzählen, wie, warum Sie einen Paket-Manager verwenden, anstatt blind zu verteilen Tarball Distributionen wie wir in den dunklen Zeiten haben

das heißt, wenn Sie bestehen Sie darauf, Dinge zu brechen, Ihre Lösung ist die java Installation cal l in %post, die nach der Installation der Dateien ausgeführt werden. Es wird es erneut aufrufen, wenn Sie das Paket aktualisieren, also muss das andere Installationsprogramm das behandeln. Aber wieder, das ist nicht der richtige Ansatz.

+0

Ja, ich habe es irgendwann herausgefunden. stattdessen habe ich dem generierten jar einen script-header hinzugefügt, um das jar automatisch auszuführen und als Ergebnis eine run-datei zu erstellen. –

Verwandte Themen