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 davon ab B.deb
und B.deb
hängt davon abA.deb
Wenn ich etwas ändere A.deb
, muss ich es neu erstellen, sonst B.deb
funktioniert es nicht. Das gilt auch für B.deb
und C.deb
. Gibt es eine Möglichkeit, diesen Prozess zu automatisieren? Gibt es vielleicht ein Tool oder Skript, das das für mich erledigt? Wenn nicht, wie könnte ich es selbst automatisieren?
Außerdem gibt es nicht meine Pakete.
apt
package-management
software-installation
dpkg
dependencies
Xiaodongjie
quelle
quelle
make
es erfunden. Ein Makefile enthält Regeln, die festlegen, was basierend auf den Änderungen neu kompiliert / neu erstellt werden muss.make
, und wie Sie selbst sagten, @xiaodongjie, die make-Ziele wären die resultierenden Pakete, deren Paket-zu-Paket-Abhängigkeiten deklariert sind, und die zugehörige Aktion für jedes Ziel wäre der Befehl, der das Paket erstellt . Installierenmake-doc
und tippen Sieinfo make
, um alles darüber zu lesen.Antworten:
Sie würden ein Makefile mit den deklarierten Build-Abhängigkeiten verwenden, beispielsweise wie folgt:
Beachten Sie, dass der Befehlseinzug eine TAB ist.
Damit
Makefile
würden Sie den Befehl verwendenund dies würde herausfinden, welche Pakete in welcher Reihenfolge erstellt werden sollen, und sie dann erstellen, alles abhängig von den Zeitstempeln der Dateien. Wenn beispielsweise say
B.tar.gz
einen Zeitstempel später als hatB.deb
(dh das PaketB
hat eine neue Quelle), würde dies dazu führen, dass zuerstB.deb
neu erstellt wird, und da dies dazu führen würde, dass es später gestempelt wirdC.deb
, würde dies auch dazu führenC.deb
, dass es neu erstellt wird.quelle
Nun, vielleicht fehlt mir Ihr Standpunkt völlig, aber es hört sich so an, als würden Sie Paket A neu kompilieren und möchten Pakete B & C neu kompilieren, für die ich uns einfach ein Makefile machen würde .
quelle