it-swarm.com.de

Abhängigkeitsbaum des Ubuntu-Quellpakets

Ich habe einige Pakete. Nennen wir sie A.deb, B.deb und C.deb. Jedes Paket hat ein entsprechendes Quellpaket A.dsc und A.tar.gz, B.dsc und B.tar.gz, C.dsc und C.tar.gz. Die Pakete hängen voneinander ab: C.deb hängt von B.deb und B.deb hängt von A.deb

Wenn ich A.deb ändere, muss ich B.deb neu erstellen, sonst funktioniert es nicht. Gleiches gilt für B.deb und C.deb. Gibt es eine Möglichkeit, diesen Prozess zu automatisieren? Gibt es vielleicht ein Tool oder Skript, das dies für mich erledigt? Wenn nicht, wie könnte ich es selbst automatisieren?

Außerdem gibt es meine Pakete nicht.

10
xiaodongjie

Sie würden ein Makefile mit den deklarierten Build-Abhängigkeiten verwenden, zum Beispiel wie folgt:

default: A.deb B.deb C.deb

C.deb: B.deb C.dsc C.tar.gz
        <command(s) to build C.deb>

B.deb: A.deb B.dsc B.tar.gz
        <command(s) to build B.deb>

A.deb: A.dsc A.tar.gz
        <command(s) to build A.deb>

Beachten Sie, dass der Befehlseinzug ein TAB ist.

Mit diesem Makefile würden Sie den Befehl verwenden

make

und dies würde herausfinden, welche Pakete in welcher Reihenfolge erstellt werden müssen, und sie dann alle in Abhängigkeit von den Zeitstempeln der Dateien erstellen. Wenn zum Beispiel B.tar.gz einen Zeitstempel später als B.deb hat (dh das Paket B hat eine neue Quelle), dann würde dies zuerst dazu führen, dass B.deb neu erstellt wird, und so weiter würde es später als C.deb stempeln lassen, würde es auch dazu führen, dass C.deb neu erstellt wird.

3

Nun, vielleicht verpasse ich Ihren Standpunkt total, aber es hört sich so an, als würden Sie Paket A neu kompilieren und Pakete B & C neu kompilieren wollen, wofür ich uns einfach ein makefile geben würde.

1
karoshi