Wie soll ich eine lokale Verzweigung eines Debian-Pakets erstellen?

8

Ich möchte eine lokale Abzweigung eines Debian-Pakets beibehalten. Ich muss einen Fehler beheben, der irgendwann im offiziellen Paket behoben wird, aber für einige Zeit nicht.

Wie erstelle ich ein .deb-Paket und wie verwende ich es, um meine Fehlerbehebung lokal zu verwenden?

Das betreffende Paket enthält einige Skriptdateien.

John McAleely
quelle

Antworten:

8

Dies hängt davon ab, ob ein öffentlich verfügbares Git- oder Subversion-Repository verfügbar ist. Wenn ja, ist es wahrscheinlich sinnvoll, git zu verwenden, um einen Zweig des offiziellen Repos zu erstellen.

Gelingt dies nicht, verwendet das Paket mit etwas Glück so etwas wie dpatch oder quilt, sodass Sie einen Patch einfach in debian / patches / behalten können.

Wenn Sie wirklich Pech haben, müssen Sie Ihren Patch jedes Mal aktualisieren, wenn ein neues Paket von Hand veröffentlicht wird. Es könnte sich trotzdem lohnen, git dafür zu verwenden und jeden neuen Build zu importieren.

Stellen Sie beim Erstellen von Debian-Paketen sicher, dass Build-Essential- und Devscripts-Pakete installiert sind.

Um die Änderung tatsächlich vorzunehmen, führen Sie sie aus

# apt-get source foo

Wechseln Sie dann in das Verzeichnis foo-1.2.3 und nehmen Sie die gewünschten Änderungen vor.

Dann renne

# debuild -us -uc -b

Dadurch wird das Paket erstellt. Dies wird entweder sofort erstellt oder zeigt Ihnen Abhängigkeiten an, die Sie zuerst installieren müssen, bevor Sie es erneut versuchen. Die Build-Pakete landen im Verzeichnis über der Quelle.

Ich würde dringend empfehlen, die Versionsnummer des Pakets in der Debian / Changelog-Datei zu ändern, damit Sie Ihr lokal erstelltes Paket nicht mit dem Original verwechseln. Sie können sich das dch-Tool ansehen, um die Bearbeitung dieser Datei zu vereinfachen.

David Pashley
quelle