Im Folgenden gehe ich davon aus, dass die Quelle offen ist (z. B. Python-Skripte), die daher nicht an eine Architektur gebunden sind (z. B. amd64 oder i386), daher "all". Wenn Sie eine C-Quelle haben, müssen Sie diese Architecture: amd64 i386
in Ihrer Quelldatei control
verwenden.
Erstellen eines Pakets für Launchpad
Dies wird schließlich zu einer Reihe von einzelnen Launchpad-PPA-Paketen.
Was ich bevorzuge (aber möglicherweise nicht erreichen kann ...), ist, meine Verpackung auf ein Minimum zu beschränken - erstelle eine Reihe von Paketen aus einer Vorlage und passe das absolute Minimum an (Änderungsprotokoll usw. + Teerdatei).
Launchpad akzeptiert nur Quellpakete. Erstellen Sie daher ein rules
, das die Dateien an den richtigen Stellen installiert. Der Einfachheit halber benutze ich debhelper . Das Verzeichnis mit Ihren Dateien sollte wie folgt aussehen:
debian/changelog
debian/control
debian/rules
debian/compat
mypluginfolder/...
Eine debian/copyright
Datei kann auch nützlich sein, um Benutzer über die mit dem Paket verknüpften Lizenzen zu informieren. Ich glaube nicht, dass Sie ein postinst
Skript benötigen, da Sie nur einige Dateien extrahieren müssen. compat
sollte den Debhelper-Kompatibilitätslevel enthalten, sagen Sie "8". ( Weitere Informationen finden Sie auf der Handbuchseite von debhelper. )
Die changelog
Datei kann mit dem dch
Befehl bearbeitet werden, der im devscripts
Paket enthalten ist. Der rules
(mit debhelper) sollte enthalten:
#!/usr/bin/make -f
%:
dh $@
override_dh_install:
dh_install mypluginfolder/ /usr/share/rhythmbox/plugins
Machen Sie es ausführbar mit chmod 755 debian/rules
. Ein Quellpaket kann mit erstellt werden debuild -S
. Stellen Sie sicher, dass Sie sich in einem Verzeichnis mit dem Namen befinden <package-name>-<version>
. Weitere Informationen zum override_
Verhalten und zum dh
Befehl finden Sie auf der entsprechenden Manpage .
Der Debian New Maintainers 'Guide war für mich sehr wertvoll, um dies zu verstehen. Es wird empfohlen, ihn zu lesen. Beispielverpackungen finden Sie unter https://github.com/Bumblebee-Project/bumblebee-ppa .
Erstellen eines Pakets aus einem vorhandenen Dateibaum
dpkg-deb -b
kann zum Erstellen von Tarballs aus einem vorhandenen Dateibaum verwendet werden. Beginnen Sie zunächst mit der Erstellung eines Verzeichnisses, das nach Ihrem Paket benannt werden soll. Ich gehe davon aus, dass Sie es benennen myplugin
und einfügen möchten /usr/share/rhythmbox/plugins/mypluginfolder
. Erstellen Sie außerdem das DEBIAN
Verzeichnis (in Großbuchstaben!) Zum Speichern von Paketinformationen:
mkdir -p myplugin/usr/share/rhythmbox/plugins/mypluginfolder
mkdir myplugin/DEBIAN
Kopieren Sie über Ihre Dateien:
cp -r ~/mypluginsfolder myplugin/usr/share/rhythmbox/plugins
Als nächstes benötigen Sie eine sogenannte Steuerdatei , in myplugin/DEBIAN/control
der das Paket beschrieben wird. Der Inhalt einer solchen Datei ist nachfolgend aufgeführt:
Package: myplugin
Version: 1.0-1
Maintainer: You <whatever@contact.address>
Architecture: all
Description: plugins for Rhythmbox
Longer description here
.
As you can see, new paragraph are split by a single dot,
and lines have to be indented by one space.
Jetzt können Sie optional den Inhalt Ihres Pakets überprüfen. Der nächste Befehl listet den Inhalt der Datei- und Verzeichniseinträge auf myplugin
:
find myplugin -ls
Wenn Sie zufrieden sind, erstellen Sie das Paket im aktuellen Verzeichnis:
dpkg-deb -b myplugin .
Eine neue Datei mit dem Namen wie <package>_<version>_<architecture>.deb
in diesem Beispiel wird angezeigt myplugin_1.0-1_all.deb
. Mit dem less
Programm können Sie einen Blick in die Datei werfen. Zum Beispiel less myplugin_1.0-1_all.deb
.