Quellcode in ein DEB-Paket kompilieren

34

Ich hatte immer ein Problem beim Installieren und Entfernen kompilierter Software. Daher habe ich beschlossen, Software aus dem Quellcode in ein .deb-Paket zu integrieren, um das Installieren und Entfernen zu vereinfachen.

Ich möchte einen einfachen und kurzen Weg kennen, um als Endbenutzer Quellcode in ein .deb-Paket zu integrieren .

Ich habe versucht:

Ashu
quelle
1
Ubucompilator ist ein interessantes Projekt, und ich begrüße ihre bisherigen Bemühungen. Wie Sie jedoch festgestellt haben, bietet es nur ein GUI-Front-End für vier oder fünf Befehle auf niedriger Ebene. Und NEIN, Sie können damit nicht einfach ein richtiges .deb-Paket erstellen.
David6

Antworten:

47

checkinstall tut, was Sie erreichen möchten: Es überwacht, welche Dateien installiert werden, und legt sie in einem .deb-Paket ab, das dann installiert und entfernt werden kann

Installieren Sie es mit

apt-get install checkinstall

Anschließend führen Sie die normale Installation aus dem Quellcode durch und ersetzen "sudo make install" durch "sudo checkinstall":

  ./configure
  make
  sudo checkinstall

Referenz: https://help.ubuntu.com/community/CheckInstall

Floyd
quelle
9

Wir haben einen wirklich guten Verpackungsleitfaden, der einen Abschnitt zum Thema neue Verpackungen enthält .

Tumbleweed
quelle
1
Ich empfehle diesen Link, da er alle Informationen enthält, die jemand benötigen würde. Auch wenn es irgendwelche spezifischen Fragen gibt, kann ich ihnen möglicherweise helfen, aber nicht, um die gesamte Prozedur zum Erstellen eines Debian-Pakets aus dem Quellcode zu erklären.
Thomas Ward
@ppumkin: aktualisiert.
Tumbleweed
6

Ich habe den make checkinstallBefehl mehrmals verwendet, um ein .debPaket auf einem Computer zu erstellen, das auf meinen anderen Servern installiert werden soll. Es ist eine schnelle Möglichkeit, eine Beta-Version zu installieren. Es funktioniert, sollte aber mit Vorsicht verwendet werden. Es gibt Fallstricke für den Benutzer, der die vielen Funktionen des .debPakets nicht versteht .

Ich habe zwanzig Server, die dieselben selbst entwickelten Apps verwenden. Das Hinzufügen der Build-Unterstützung und des Compilers zu jedem Host ist nicht so schwierig.

Die zwanzigmalige Eingabe der Befehle zum Herunterladen und Kompilieren einer neuen Version ist zeitaufwändig. Die Alternative besteht darin, ein Skript hochzuladen, um die Aufgabe auszuführen, und dann das Skript auszuführen. Es ist jedoch oft einfacher, Anwendungen mithilfe der mit .deberstellten Datei zu aktualisieren checkinstall.

C Schuman
quelle
0

Die Aufgabe, einen zufälligen Teil des Software-Codes in eine .deb-Datei zu packen, ist ziemlich kompliziert, wenn die Software nicht bereits in dieser Form vorliegt, insbesondere im Vergleich zu make, make install. Wenn Sie möchten, dass die Dinge einfacher werden, bewegen Sie sich meiner Meinung nach in die falsche Richtung.

Ich sage nicht, dass Sie es nicht können - Debian-Entwickler machen es oft. Aber es scheint nicht der einfachste Weg zu sein, das zu tun, was Sie wollen.

Vielleicht sollten Sie sich mehr darauf konzentrieren zu lernen, wie das Kompilieren und Installieren von Software aus der Quelle "funktioniert". Zu Ihren Gunsten ist die Tatsache, dass alles, was Sie selbst installiert haben, in / usr / local landen sollte

thomasrutter
quelle
danke für den vorschlag, aber ich weiß bereits über das kompilieren von software Bescheid, ich habe einige von ihnen auf meinem system kompiliert. Das einzige, was mir schwerfällt, ist das Aktualisieren oder Entfernen. Ich denke, eine Deb-Datei wäre praktischer
Ashu
Der Grund, warum sich ein Deb-Paket problemlos selbst aktualisieren oder entfernen kann, ist, dass jemand für jedes Paket sorgfältig Skripte geschrieben hat, die dies tun. Darüber hinaus mussten sie eine ganze Reihe weiterer beschreibender Metadaten hinzufügen, anhand derer dpkg ermitteln kann, welche Dateien vorhanden sind. Sie haben Ihre Arbeit für Sie ausgeschnitten.
Thomasrutter
1
Tatsächlich, geh einfach mit Floyds Antwort. Insgesamt sieht es nach einer viel besseren Lösung aus, wenn es wirklich das tut, was es verspricht!
thomasrutter
Jep. Floyds Lösung ist großartig. Vor allem jetzt ist es extrem ausgereift. Jetzt muss ich nicht mehr auf Tonnen von Servern aufbauen. :)
Jack_Hu