it-swarm.com.de

Wie erstelle ich ein Metapaket, das andere Pakete automatisch installiert?

Ich möchte in der Lage sein, ein Paket zu erstellen, das selbst keinen Code oder keine Programme enthält, sondern stattdessen andere Pakete, die in den Repositorys vorhanden sind, auf einem Computer installiert, so wie das Paket ubuntu-restricted-extras es tut?

54
Thomas Ward

Ein solches Metapaket kann mit einem Tool namens equivserstellt werden. wodurch ein Paket mit nur Abhängigkeitsinformationen erstellt wird.

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 ns-control erstellt. Öffnen Sie diese Datei mit Ihrem Texteditor. Für die von Ihnen generierte Steuerdatei sollten die Zeilen Depends oder Recommends in Abhängigkeit von den zu installierenden Paketen geändert werden:

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 Option --full an equivs-build übergeben werden, 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

47
ajmitch