Installationspaket

Aus Labor für Echtzeitsysteme

Wechseln zu: Navigation, Suche

Dieser Artikel beschreibt zusammengefasst, wie ein Installationspaket für die Linuxdistribution Ubuntu im Rahmen des Projektfaches Rechner- und Netzwerksicherheit im WS2010/11, erstellt wird.

Inhaltsverzeichnis

[bearbeiten] Vorbereitung

[bearbeiten] benötigte Pakete

Folgende Pakete werden zunächst über die Paketverwaltung (apt-get oder synaptic) installiert:

  • debhelper
  • dh-make
  • dpkg-dev
  • fakeroot
  • dput
  • mini-dinstall
  • (optional)lintian
sudo apt-get install debhelper dh-make dpkg-dev fakeroot dput mini-dinstall lintian

[bearbeiten] Arbeitsumgebung schaffen

Zunächst wird ein Projektverzeichnis, welches den Namen des Projektes trägt, erstellt. Innerhalb dieses Verzeichnisses werden die jeweiligen Versionsverzeichnisse abgelegt. Die Bezeichnung dieser Verzeichnisse beinhaltet den Namen des Projektes sowie die Versionsnummer (z.b. tor-0.2.1.26). Innerhalb dieses Versionsverzeichnisses werden sämtliche Dateien (Sourcecode, Konfigurationsdateien, Dokumentationen, ...), die zu dieser Version gehören strukturiert abgelegt.

Abschließend wird eine mittels tar archivierte und gzip komprimierte Form dieses Verzeichnisses in das Projektverzeichnis gelegt. Die Bezeichnung ist dabei identisch der des Versionsverzeichnisses.

[bearbeiten] Debian-Dateien

[bearbeiten] Erstellung

Innerhalb des Versionsverzeichnisses wird mittels des Kommandos
dh_make -e <email@email.com> -c <lizenz> -f ../<paketname>.tar.gz
das Unterverzeichnis debian, welches die Steuerungsdateien für dieses Paket, angelegt.
  • Nach der Option -e folgt eine Email-Adresse. Soll das Paket signiert werden, so sollte eine Adresse, für die ein GnuPG-Key besteht, gewählt werden.
  • Die Option -c erwartet das gewünschte Lizenzmodell. Folgende Modelle stehen zur Auswahl: gpl, lgpl, artistic und bsd. Als Empfehlung soll hier gpl verwendet werden.
  • Nach -f folgt der Pfad zu dem zuvor erstellten tar.gz-File im Projektverzeichnis.

Anschließend muss noch gewählt werden, ob eine einzelne Binärdatei, mehrere Binärdateien, eine Bibliothek, ein Kernelmodul oder ein cdbs paketiert werden soll.

Zuletzt werden die gewählten Optionen noch einmal zusammengefasst. Mit <ENTER> wird die Erstellung der Debian-Dateien gestartet.

[bearbeiten] Bearbeitung

Die Bearbeitung hängt hauptsächlich vom gewünschten Umfang des Paketes ab. Es können dabei verschiedenste Dinge wie z.B. Skripte vor oder nach der Installation, Erstellen von Einträgen im Anwendungsmenü oder Konfiguration von cron-jobs gesteuert werden, welche je nach Anforderung einfacher oder aufwändiger sind.

In diesem Artikel wird nur auf die wichtigsten Dateien eingegangen. Diese sind changelog, control, copyright, rules und dirs.

[bearbeiten] changelog

Innerhalb dieser Datei wird zunächst der Name, die Versionsnummer, die Ubuntu-Distribution, für die das Paket erstellt werden soll und die Dringlichkeit dieser Version des Paketes. Bei der Versionsnummer sollte man sich an die Konvention seitens Ubuntu [1] halten.

Anschließend werden die Änderung, die diese Version mit sich bringt, vermerkt.

Am Ende der Datei wird wiederum die oben verwendete Email-Adresse sowie das aktuelle Datum eingetragen.

Das Ganze sieht dann letztlich etwa so aus:

its-schulung (0.1-0ubuntu1) maveric; urgency=low
 
* initial release
 
-- Martin <martin@domain.de> Thu, 28 Oct 2010 11:11:11 +0200

[bearbeiten] control

In dieser Datei werden Informationen, wie z.B. Abhängigkeiten, verwendete Architektur, Kategorie des Pakets, ... eingetragen. Desweiteren werden hier Konflikte und Empfehlungen in Bezug auf andere Pakete aufgelistet.

[bearbeiten] copyright

Hierin befinden sich die Lizenzbestimmungen des Paketes. Diese werden auf das Projekt angepasst.

[bearbeiten] rules

Diese Datei ist ein Shellskript, welches bei der Paketerstellung ausgeführt wird. In diesem werden evtl. nötige Kompiliervorgänge sowie weitere den Paketbau betreffende Befehle aufgeführt.

[bearbeiten] dirs

In dieser Datei werden alle Verzeichnisse, die für den Paketbau notwendig sind und nicht automatisch durch Kompilierung oder Skripte erzeugt werden, aufgelistet. Dies könnte z.B. für den Menüeintrag verwendet werden.

[bearbeiten] (optional) Menüeintrag

Um einen Menüeintrag zu erstellen, muss man eine datei mit dem Namen <paketname>.desktop erstellen. Die darin zu treffenden Einstellungen sind in der Minimalvariante der Typ des Eintrags, der Pfad zu einem Programm und der Name des Programms. Weitere Optionen können unter [2] nachgelesen werden.

Das verwendete Icon muss entweder im png oder xpm-Format vorliegen und darf eine maximale Größe von 32x32 Pixel und 24 Farben nicht überschreiten. Der Name lautet ebenfalls wie das Paket. Dieses Icon wird entweder beim Kompilieren oder durch einen Eintrag in der rules Datei nach
/usr/local/share/pixmaps
kopiert. Damit dies funktioniert, muss dieser Pfad in die Datei dirs eingetragen werden.

Aus Kompatibilitätsgründen sollte ebenso eine paketname.menu erstellt und von rules nach /usr/share/menu kopiert werden. Der Aufbau dieser Datei ist ähnlich der .desktop Datei und kann unter [3] nachgelesen werden.

[bearbeiten] Quellpaket und Abschluss

Im Versionsverzeichnis wird nun mittels
dpkg-buildpackage -S -rfakeroot
ein Quellpaket erzeugt. Falls eine Signierung des Paketes gewünscht wurde, wird nun das Passwort für den GnuPG-Schlüssel abgefragt. Das dabei entstandene Quellpaket befindet sich anschließend im Projektverzeichnis. Dort kann es mittels
lintian -i projektname.dsc
auf Fehler überprüft werden.

Abschließend wird mit dem Programm pBuilder aus diesem Quellpaket ein Debianpaket erstellt, welches verteilt werden kann.

[bearbeiten] Quellen

  1. Versionsnummern von Ubuntu-Paketen
  2. .desktop Menüelemente
  3. Syntax .menu Datei
  4. Grundlagen der Paketerstellung
  5. Menüeintrag erstellen
  6. PackagingGuide auf ubuntu.com (engl.)
Persönliche Werkzeuge