Ein solches Metapaket kann mit einem Tool namens erstellt equivs
werden, das ein Paket nur mit Abhängigkeitsinformationen erstellt.
Erstellen Sie zunächst ein Verzeichnis:
mkdir my-metapackage
cd my-metapackage/
Führen Sie nun das Programm aus:
equivs-control ns-control
Es wird eine Datei mit dem Namen erstellt ns-control
. Öffnen Sie diese Datei mit Ihrem Texteditor. In der Steuerdatei, die Sie generieren, sollten die Zeilen Depends
oder die Recommends
Zeilen so geändert werden, dass sie von den Paketen abhängen, die Sie installieren möchten:
Section: misc
Priority: optional
Standards-Version: 3.9.1
Package: my-metapackage
Version: 1.0
Depends: openssh-server, gedit
Description: This package installes an ssh server and a text editor
The Long description of this package ends with a newline!
(Nur ein Beispiel, Sie sollten weitere Informationen hinzufügen)
Und schließlich erstellen Sie das Paket, indem Sie ausführen
equivs-build ns-control
Ihr Paket befindet sich unter my-metapackage/my-metapackage_1.0_all.deb
.
Wenn Sie auch ein Quellpaket erstellen möchten, kann die --full
Option übergeben werden equivs-build
, z equivs-build --full ns-control
. Dabei wird debuild verwendet und es werden auch .dsc- und .tar.gz-Dateien erstellt.
Extrahieren und erstellen Sie das Quellpaket mit, um eine Quelldatei mit der Erweiterung .changes zu erstellen, die Sie auf eine PPA hochladen können
dpkg-source -x my-metapackage_1.0.dsc
cd my-metapackage-1.0
debuild -S
Wenn der Maintainer, den Sie in ns-control festgelegt haben, mit Ihrem GPG-Schlüssel übereinstimmt, sollte er die Datei my-metapackage_1.0_source.changes erstellen und signieren, damit Sie auf Ihre PPA zugreifen können
~/.devscripts
Datei haben und speziell einen anderen GPG-Schlüssel definieren, der in der devscripts-Datei verwendet werden soll, dieser den dpkg / debuild-Prozess AUSSERBRECHEN und haben wird Verwenden Sie den in angegebenen GPG-Schlüssel.devscripts
. Dies ist nur ein wichtiger Punkt für den letzten Satz in Ihrer Antwort.Depends:
Installation nur dann funktioniert, wenn Pakete vorhanden sind. Es installiert sie nicht, wenn sie nicht auf meinem Computer sind. Um sie zu installieren, habe ichProvides
stattdessen verwendet und es funktioniert wie ein Zauber. Siehe meinen Code (habe ihn gerade geändert): github.com/palladius/debian-packages/blob/master/…