Was ist zum Erstellen von Ubuntu / Debian-Paketen zu verwenden?

1

Ich habe in letzter Zeit verschiedene Anleitungen und Anleitungen zum Erstellen von Paketen gelesen. Und es scheint zu sein , viel von Möglichkeiten , man könnte gehen über sie . Ich bin ein bisschen verwirrt, was genau ich verwenden soll. Das heißt, ich versuche, das ganze Bild zu sehen. Welche Tools gibt es? Wie sind die Beziehungen zwischen ihnen? Welches sind Wrapper für welche? Welche sind für was besser geeignet? Mag sein, apt-get sourcerichtet sich wahrscheinlich hauptsächlich an Benutzer, nicht an Entwickler. Bessere Alternative muss sein dget. Welche Alternativen gibt es für welche? Ein paar zu nennen sind pbuilder, pdebuild, pbuilder-dist, cowbuilder, sbuild, debuild, dpkg-buildpackage,fakeroot. Und es muss noch viel mehr geben, von dem ich nicht einmal weiß. Was sind die häufigsten Workflows?

x-yuri
quelle

Antworten:

1

Was ich herausgefunden habe. Zunächst gibt es diese kurze Beschreibung, nach der ich hier am häufigsten frage.

Der Kern des Build-Systems besteht darin dpkg-buildpackages, welches verwendet fakeroot, was wiederum läuft debian/rules(was ein Makefile ist), um ein Paket zu erstellen. Und das könnte ausreichen, wenn Sie ein Paket für den internen Gebrauch für die Version erstellen, in der Sie es ausführen.

Wenn Sie andererseits anstreben, zu debian/ beizutragen ubuntu, werden Sie zumindest verwenden debuild, was lintiandie Dateien ausführt und signiert.

Wenn Sie auf verschiedene debian/ ubuntuReleases abzielen möchten , werden Sie pbuilderunter anderem Pakete in einer sauberen Umgebung erstellen, die nicht mit Ihren bereits installierten Paketen überfüllt ist, um die tatsächlichen Abhängigkeiten zu ermitteln. Man könnte in Betracht ziehen pbuilder-dist, die Dinge noch weiter zu vereinfachen.

Es pdebuildgibt eine "Pbuilder-Methode für das Debuilding". Ich sehe es nicht laufen lintian, aber das könnte nicht im Einklang mit dem pbuilderWeg sein.

Dann gibt es auch cowbuilder, wenn Sie das Erstellen von Paketen beschleunigen möchten (Wrapper Around pbuilder?). Es gibt auch Tools zum Erstellen von gitRepositorys, auf die ich noch nicht eingegangen bin.

UPD Mir wurde gesagt, #debian-mentorsdass " sbuildsich genauso verhält wie die buildd, weniger Überraschungen", dass " pbuilderdie Unterstützung für Experimente einfach falsch ist", dass "OTOH sbuildimmer noch etwas übersieht , um das Netzwerk aus dem Build-Prozess zu entfernen" und das pbuildernicht gepflegt. Das Entfernen des Netzwerks ist erforderlich, da das Erstellen von Paketen nicht davon abhängen sollte, dass es vorhanden ist. Sie sollten nichts herunterladen.

schrootvon experimental ist angeblich in der lage das netzwerk zu isolieren (unshare).

x-yuri
quelle
+1 für diesen Link zur Hierarchie der Verpackungstools, ich habe gerade ein paar Tage lang Interesse für dieses Thema bekommen. cowbuilderscheint das einfachste Werkzeug zu sein (verglichen mit dem, was ich gesehen habe pbuilder). Ich habe die Schritte in dieser Antwort fortgesetzt : askubuntu.com/questions/548815/cannot-build-on-launchpad/… . Übrigens müssen Sie sich nicht chrootdirekt mit Werkzeugen befassen . sbuild / pbuilder kümmern sich darum.
user.dz
1

Sie sagen nicht viel über Ihre Quellumgebung.

Wenn es sich um Open Source und nur um ein Projekt (eine Steuerdatei unter dem debian/Verzeichnis) handelt, ist https://launchpad.net eine wirklich gute Lösung. Mehr oder weniger muss man die Dateien richtig machen und sie kümmern sich um den Rest.

Das Richtige für die Dateien zu tun, ist schon jetzt ein bisschen magisch, aber es gibt eine Fülle von Dokumentationen zum Erstellen eines Pakets. Sie können mit einem sehr einfachen Beispiel beginnen, das funktioniert, und sich dann die Zeit nehmen, um weitere Optionen / Funktionen hinzuzufügen, während Sie fortfahren. Auf diese Weise müssen Sie nicht alles auf einmal lernen.

Alexis Wilke
quelle