2017-09-28 1 views
0

Ich habe gelesen über RPMs zu bauen, und der Prozess ist ziemlich komplex. Gibt es ein Programm/eine Software, die wie folgt funktioniert:Wie man ein RPM von der Quelle in einer Linie ohne Spezifikationsdateien etc. baut?

  1. Download tar.gz-Datei. Extrahieren Sie in das Verzeichnis
  2. cd in das Verzeichnis
  3. Run
  4. RPM-Datei Ausgabe in das Verzeichnis ist

Ist ein solches Programm gibt es? Es scheint, als ob es sollte. Wenn ich make, install usw. ausführe, muss ich keine Spezifikationsdateien angeben, sondern Orte angeben, wo die Software installiert werden muss. Warum sollte ich all das für die Erstellung von RPMs tun müssen?

Ich habe versucht, check, aber ich erhalte immer Fehler wie „Verzeichnis nicht gefunden: /root/rpmbuild/BUILDROOT/hello-2.10-1.x86_64/usr“

So gibt es einen einfacheren Weg?

+0

Ich weiß nicht, ob das, was Sie verlangen, existiert, aber ich glaube nicht, dass Sie Vergleich mit machen, ist gültig. Wenn Sie make ausführen, benötigen Sie ein Makefile, um die Definition der verschiedenen Ziele zu treffen. Wie würden Sie das Tool im Sinne haben, wissen: 1. Wie das Projekt 2. baut Was der Ausgang Artefakt (en) ist 3. Wo diese Artefakte sollten 4. Was die auf dem Zieldateisystem eingesetzt werden Dateiberechtigungen sollten usw. sein. –

+0

Hmm. Wenn ich derzeit "make" und "make install" ohne Probleme verwenden kann, kann das Tool, das ich im Hinterkopf habe einfach seine Informationen von den gleichen Orten, die "make" und "make install" ihre Informationen bekommen? Das Tool "checkinstall" soll so etwas machen, aber ich kann es nicht für RPMs arbeiten. Ein Workaround, den ich habe, ist, stattdessen "deb" -Dateien zu erstellen und alien zu verwenden, um deb -> rpm zu konvertieren. Aber es ist natürlich nicht perfekt ... Ich schreibe einfach "checkinstall" und die rpm/deb wird erstellt (für RPMs abgehört). Keine Notwendigkeit für Spezifikationsdateien. –

+1

Fair genug ... Ich verstehe was du meinst. So wie die Frage formuliert ist, war es (für mich sowieso) nicht klar, dass Sie die RPM aus den Informationen in Ihrem Makefile erstellen möchten. Das könnte machbar sein, aber es wird wahrscheinlich zu einem wirklich komplizierten Makefile führen. Wir haben eine Menge RPM-Spezifikationsdateien in meinem Projekt, und ehrlich gesagt, enthalten sie nicht viele redundante Informationen. In jedem Fall erzeugt dies immer noch nicht wirklich eine Drehzahl "aus der Quelle". Sie benötigen immer noch das Makefile, um alle Informationen zu erhalten, die RPM in Bezug auf Abhängigkeiten usw. benötigt. Und wenn Sie vor/nach der Installation Skripte benötigen, wird es schnell kompliziert. –

Antwort

0

Nein. Es gibt keinen einfacheren Weg.

Manchmal Upstream liefern 'make rpm' Ziel. Irgendwann funktioniert checkinstall. Aber oft müssen Sie die Spezifikationsdatei manuell erstellen.

BTW, dass Fehler von Check zeigt zwei Dinge:

  • Sie diesen Befehl als root ausgeführt werden. Das ist sehr sehr unklug.
  • sollten Sie einige Build-Verzeichnisse erstellen. Run command rpmdev-setuptree es wird sie für Sie erstellen.
+0

Danke dafür!Ich habe bereits diese Verzeichnisse eingerichtet und wenn ich checkinstall als ein anderer Benutzer ausführen, bekomme ich nur einen ähnlichen Fehler ... –

+0

Die einzige Sache, die für mich funktioniert, ist die Verwendung von checkinstall, um eine .deb-Datei zu erstellen, dann verwenden Sie Alien convert .deb -> .rpm. Wenn checkinstall keine SPEC-Datei zum Erstellen von RPMs benötigt, warum brauchen wir dann eine? –

+0

Checkinstall nur 'make install' überwachen und alle installierten Dateien im Abschnitt% files ablegen. Alle anderen Abschnitte auf ihren Standardwerten belassen. Was für super einfache Pakete in Ordnung sein kann. Normalerweise müssen Sie jedoch Abhängigkeiten angeben, Installationsskripts installieren (um Daemons neu zu starten), Benutzer vor dem Installieren von Paketen erstellen, einige Dateien als Configs markieren ... Dies kann für allgemeine Software kaum automatisch durchgeführt werden. – msuchy