Skripte verpacken
Archivierte Anleitung
Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.
Artikel für fortgeschrittene Anwender
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Dieser Artikel ist ein zusätzliches Beispiel zu den Artikeln Grundlagen der Paketerstellung und Paketbau. Die Grundlagen des Paketbaus und dazu nötige Techniken, wie das Bearbeiten von Dateien und Packen von Archiven wird zum Verständnis dieses Beispiels als bekannt vorausgesetzt [1].
Das im Folgenden dargestellte Beispiel-Projekt zeigt, wie man aus einem kleinen Shell- oder Perl-Skript ein Paket bauen kann. Das Beispiel-Skript ist übersetzbar und verfügt über Manpages und einen Menüeintrag, um die Sache etwas interessanter zu gestalten. Die Vorgehensweise und die Debian-Paketierungs-Dateien lassen sich auch auf andere Projekte übertragen, bei denen kein Kompiliervorgang erfolgen muss.
In diesem Beispiel wird nicht erklärt, wie die Debian-Paketierungs-Dateien erstellt werden, dazu ist der allgemeine Artikel bzw. weiterführende Literatur zu lesen. Es wird ein vollständiges Quellarchiv vorgestellt, in dem nur noch Maintainer, E-Mail-Adresse und weitere Projekt-bezogene Daten ersetzt werden müssen, um es in ein Debian-Quell- oder Binär-Paket zu verwandeln.
Projekt-Struktur¶
Folgende Baumansicht zeigt das Projekt hallowelt, mit der ersten Version hallowelt-0.0.1 und mit allen enthaltenen Unterverzeichnissen und Dateien. Die Dateien sind durchnummeriert und werden im Folgenden einzeln erläutert.
hallowelt `-- hallowelt-0.0.1 |-- bin | `-- hallowelt (1.) |-- debian | |-- changelog (2.) | |-- control (3.) | |-- copyright (4.) | `-- rules (5.) `-- share |-- applications | `-- hallowelt.desktop (6.) |-- hallowelt | `-- pofiles | `-- de | `-- LC_MESSAGES | `-- hallowelt.po (7.) |-- locale | `-- de | `-- LC_MESSAGES | `-- hallowelt.mo (8.) |-- man | |-- de | | `-- man1 | | `-- hallowelt.1.gz (9.) | `-- man1 | `-- hallowelt.1.gz (10.) `-- pixmaps `-- hallowelt.png (11.)
Das ganze Projekt kann als Archiv ⮷ heruntergeladen werden.
Dateien¶
Bedeutung der einzelnen Dateien | ||
Nr. | Datei | Funktion |
1. | bin/hallowelt ⮷ | Das Programm selbst, hier ein Shell-Skript |
2. | debian/changelog ⮷ | Liste der Änderungen am Debian-Paket (neue Einträge zu oberst) |
3. | debian/control ⮷ | APT-Paketinformationen |
4. | debian/copyright ⮷ | Copyright- und Lizenz-Informationen |
5. | debian/rules ⮷ | Skript zur Paketerstellung (wird von debuild aufgerufen) |
6. | share/applications/hallowelt.desktop ⮷ | Menü-Eintrag |
7. | share/hallowelt/pofiles/*/hallowelt.po ⮷ | Übersetzungsdatei (Quelldatei) |
8. | share/locale/*/hallowelt.mo ⮷ | Übersetzungsdatei (Binärdatei) |
9. | share/man/de/man1/hallowelt.1.gz ⮷ | Deutsche Manpage |
10. | share/man/man1/hallowelt.1.gz ⮷ | Englische Manpage |
11. | share/pixmaps/hallowelt.png ⮷ | Programm-Icon (z.B. für den Menüeintrag) |
Paketbau¶
Ist das Projekt soweit vollständig angelegt und Version 0.0.1 bereit zur Paketierung, wird zuerst ein Quell-Archiv angelegt.
cd ~/hallowelt/hallowelt-0.0.1 #Ins Verzeichnis wechseln tar -czf ../hallowelt-0.0.1.tar.gz bin/ share/ #Quell-Archiv anlegen
Nun kann das Paket gebaut werden. Natürlich muss zuvor die E-Mail-Adresse des Maintainers in der debian/changelog angepasst werden (oder man kann nur ein unsigniertes Paket erstellen).
debuild #Paket bauen sudo dpkg -i ../hallowelt_0.0.1_all.deb #Paket installieren
Unsigniertes Paket¶
Möchte man ein nicht signiertes Paket erstellen, muss debuild mit den entsprechenden Parametern aufgerufen werden.
debuild -uc -us
PPA-Variante¶
Für den Bau über PPA benötigt man nur das Source-Paket. Man gibt in der debian/changelog die entsprechende PPA-Versionsnummer (hier ~ppa1
) an und baut das Paket wie folgt:
cd ~/hallowelt/hallowelt-0.0.1~ppa1 #Ins Verzeichnis wechseln tar -cf ../hallowelt-0.0.1~ppa1.tar.gz bin/ share/ #Quell-Archiv anlegen debuild -S -sa #Quell-Paket bauen dput my-ppa ../hallowelt_0.0.1_source.changes #Paket ins PPA laden
Links¶
Skripte/Bash Lokalisierung - Anleitung zum Erstellen lokalisierter bzw. übersetzbarer Bash-Skripte