Hauseigenes Apt-Repo: https://apt.iteas.at
Durchgeführt mit Ubuntu 16.04
Wir gehen hier von einem kleinen Projekt auf SF aus. Der MSG-Viewer. Das ist ein Java geschriebenens Programm das die Aufgabe hat Outlookmails zu öffnen. Das ich selbst natürlich kein Outlook verwende, ist das Tool oft nützlich wenn wo eine MSG-Dateie herumliegt.
Also ersters laden wir die Datei herunter und entpacken sie. Das Icon des Projektes hab ich mal extra gespeichert, das es im Zip nicht enthalten ist. Schnell ein SH-File erstellt und das ganze die gewünschte Orderstruktur gepackt. Wichtig ist hier das man die Berechtiungen und Eigentümer schon richtig stellt. Also fast immer Root. Naürlich auch auf die Maske und auf event. im Buildverzeichnis gesetzte ACL's achten.
MSGViewer ├── DEBIAN │ └── control └── usr ├── bin │ └── msgviewer.sh ├── lib │ ├── commons-lang3-3.1.jar │ ├── CommonsLangPlugin.jar │ ├── FrameWorkMinimized.jar │ ├── jericho-html-3.1.jar │ ├── JerichoHtmlPlugin.jar │ ├── joda-time-1.6.jar │ ├── log4j-1.2.12.jar │ ├── mail.jar │ ├── msgparser.jar │ ├── poi-3.2-FINAL-20081019.jar │ ├── ShellExec.jar │ └── tnef-1.3.1.jar ├── MSGViewer.jar └── share ├── applications │ └── MSGViewer.desktop └── icons └── MSGViewer.png
Als nächstes erstellen wir in userem Buildverzeichnis noch einen Ordner mkdir DEBIAN
. In diesen Ordner kommen alle Dateien hinein, die das Erstellen des Deb-Pakets steuern. Im Ordner „DEBIAN“ müssen wir zumindest eine Datei mit dem Namen „control“ erstellen, in der wir die wichtigsten Informationen zu unserem Paket angeben. Weiters können wir hier auch angeben von welchen Paketen unseres abhängig ist, so dass der Paketmanager diese gleich mitinstallieren kann.
Unserer control
sieht nun so aus:
Package: msgviewer Version: 1.9 Section: misc Priority: extra Architecture: all Depends: incron Installed-Size: 4381 Maintainer: Mario Loderer <linux@osit.cc> Homepage: https://sourceforge.net/projects/msgviewer Description: Ein Javaprogramm das die Aufgabe hat Microsoft Outlook Dateien (MSG) zu Öffnen zu Konvertieren.
Beschreibung der Felder:
Ausdruck | Beispielwert | |
---|---|---|
Package | Der Name den das Paket haben soll. Er sollte möglichst noch nicht in Verwendung sein, da man über ihn auch das Paket im Paketmanager installieren kann. Weiters darf er auch keine Whitespaces (Leerzeichen etc.) oder Sonderzeichen enthalten. | |
Version | Die Version des Pakets. Über die Version kann der Paketmanager auch erkennen ob eine eventuell schon installierte Version des Programmes neuer ist als die im Paket. | |
Section | Gibt die Sektion an, zu der das Paket gehört. Zuerst geben wir die Kategorie 'main', 'contrib' oder 'non-free' gefolgt von einem Slash ('/') an. Wenn das Paket in die Kategorie 'main', dh. mit einer Open Source Lizenz lizenziert ist, dann können wir die Kategorie auch weglassen, da dann automatisch 'main' angenommen wird. Anschließen müssen wir noch die Sektion angeben, bei der es sehr viele Möglichkeiten gibt. Einige Beispiele sind 'admin', 'devel' (development), 'doc', 'editors', 'games', 'graphics', 'math', 'misc', 'science' oder 'utils'. Es gibt noch ein paar weitere, die wir auf der Debian Homepage finden. | |
Priority | Hier geben wir an wie wichtig unser Paket für ein System bzw. seinen Anwender ist. Normalerweise werden wir hier 'extra' angeben. | |
Architecture | Gibt die Prozessorarchitektur an, auf denen dieses Programm/Skript lauffähig ist. Mögliche Werte sind 'i386' für die meisten Heimcomputer die mit 32 Bit laufen, 'amd64' für 64-Bit Heimcomputer und 'all' für alle Computer (zb. für viele Skripte). Es gibt zwar auch noch andere Möglichkeiten, die aber nicht so relevant sind. | |
Depends | Abhängigkeiten, dh. Programme bzw. eigentlich Pakete die unser Programm/Skript zur Ausführung unbedingt braucht können wir hier angeben. Wir brauchen nur die Paketnamen getrennt durch Komma und Leerzeichen angeben, also zum Beispiel: Depends: incron, libsdl1.2, libsdl-image1.2 | |
Installed-Size | Wie der Name schon sagt geben wir hier die Größe unseres installierten Paketes an. Die Angabe erfolgt in KB. | |
Maintainer | Hier geben wir den bzw. die Namen der Programmierer/Ersteller des Pakets/Programms an. Meistens wird hier auch eine E-Mail-Adresse angegeben. | |
Homepage | Dieser Punkt sollte wohl selbsterklärend sein. Am Besten sollte man unter dieser Adresse auch den Quellcode des Pakets erhalten. | |
Description | In der gleichen Zeile wie „Description“ eine kurze Beschreibung des Pakets und anschließend in der nächsten Zeile eingerückt die ausführliche Beschreibung. |
#!/bin/bash java -jar /usr/MSGViewer.jar
[Desktop Entry] Categories=Qt;Utility; Comment=Öffnen und Konvertieren von Outlook MSG-Mails Comment[de]=Öffnen und Konvertieren von Outlook MSG-Mails Comment[en_GB]=Open and convert Outlook MSG-Mails Exec=msgviewer.sh GenericName=Outlook MSGViewer GenericName[de]=Outlook MSGViewer GenericName[en_GB]=Outlook MSGViewer Icon=MSGViewer Name=Outlook MSGViewer Name[de]=Outlook MSGViewer Name[en_GB]=Outlook MSGViewer NoDisplay=false Path[$e]= StartupNotify=true Terminal=0 TerminalOptions= Type=Application X-KDE-SubstituteUID=false
Man begibt sich nun ausserhalb des Roobuildverziechnisses und baut sein Paket mit Folgendem Befehl:
dpkg -b MSGViewer MSGViewer-1.9.deb
Das Paket kann nun einfach mit einem Installer wie z.B. dpkg
, apt
oder „qapt-deb-installer“, installiert werden.
Das Fertige Paket kann natürlich auch von unserer Paketquelle installiert werden:
echo "deb http://styrion.at/apt/ ./" > /etc/apt/sources.list.d/styrion.list apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2FAB19E7CCB7F415 apt update apt install msgviewer