Debian-Pakete erstellen

Aus Debacher-Wiki
Wechseln zu: Navigation, Suche

Ubuntu arbeitet, wie auch Xandros, mit dem Debian-Paketsystem. Bei den Paketen handelt es sich um Dateien mit der Endung .deb, in denen sowohl die zu installierenden Dateien, als auch zusätzliche Einstellungen und Installationsprogramme abgelegt sind (siehe auch http://de.wikipedia.org/wiki/Debian-Bin%C3%A4rpaket).

Im Prinzip ist es nicht schwer solche Pakete zu bearbeiten bzw. neu zu erstellen. Leider konnte ich keine Anleitung finden, die meinen Anforderungen ganz gerecht wird, insofern will ich misch schrittweise selber herantasten.

Bearbeiten eines vorhandenen Paketes

Für meine Schüler, speziell die, die noch mit Xandros arbeiten wollte ich ein Paket mit dem Programm GeoGebra zur Verfügung stellen. Im Prinzip findet sich ein passendes Paket unter http://www.getdeb.net/app/GeoGebra. Leider hat dieses Paket den Nachteil, dass es auf das Vorhandensein von open-jdk angewiesen ist, da im Startprogramm der volle Pfad zu Java angegeben ist. Zumindest das wollte ich ändern und bin dazu der Beschreibung unter http://www.tomprogs.at/linux-tutorials/debian-paket-tutorials-01-ein-erstes-paket.xhtml gefolgt.

Der hier beschriebene Weg ist sicher nicht immer ganz korrekt, dafür aber einfach und schnell nachvollziehbar.

Ich habe mir also das vorhandene Paket heruntergeladen:

cd /tmp
wget http://mirrors.dotsrc.org/getdeb/ubuntu/intrepid/ge/geogebra_3.0.0-0~getdeb1_all.deb

Dann habe ich die Datei entpackt mittels

dpkg -x geogebra_3.0.0-0~getdeb1_all.deb geogebra

Der Paketinhalt landet damit im Verzeichnis /tmp/geogebra. Im Prinzip kann man unterhalb von diesem Ordner einen kompletten Verzeichnisbaum für die Installation anlegen. Konkret gibt es für dieses Paket nur das Verzeichnis usr und dort im Verzeichnis bin befindet sich das zu bearbeitende Startprogramm geogebra, also die Datei

/tmp/geogebra/usr/bin/geogebra

mit dem Inhalt

#!/bin/sh
/usr/lib/jvm/java-6-openjdk/jre/bin/java -jar /usr/share/geogebra/geogebra.jar

die zweite Zeile kann man einfach verkürzen zu:

#!/bin/sh
java -jar /usr/share/geogebra/geogebra.jar

Damit das Starten des Programmes leichter wird lege ich ins Home-Verzeichnis eine Datei geogebra.desktop, also konkret für Xandros

/tmp/geogebra/home/user/geogebra.desktop

mit dem Inhalt

[Desktop Entry]
Type=Application
Name=GeoGebra
Comment=Dynamic Mathematics for Schools
Comment[de]=Dynamische Mathematik f?r Schulen
Icon=geogebra
TryExec=geogebra
Exec=geogebra %f
MimeType=application/x-geogebra-file;application/x-geogebra-tool;
Categories=Education;Science;Math;Java;

Die Datei habe ich aus einer normalen Installation herausgezogen.

Im Ordner /tmp/geogebra gibt es jetzt also zwei Unterverzeichnisse, das bisherige usr und das neue home. Ich habe dann noch ein Verzeichnis DEBIAN angelegt, dorthinein kommen Dateien, die die Paketinstallation beinflussen.

mkdir DEBIAN
cd DEBIAN

Im Ordner DEBIAN legt man dann eine Datei control an, mit etwa folgendem Inhalt:

Package: geogebra
Version: 3.0.0-1
Section: math
Priority: extra
Architecture: all
Depends:
Installed-Size: 4
Maintainer: Uwe Debacher
Description: Ein tolles Geometrie-Programm von Markus Hohenwarter, gepackt für die Nutzung mit Xandros. Basierend auf dem Paket von http://www.getdeb.net/app/GeoGebra

Damit werden Angaben über das Paket gemacht.

Wenn man fertig ist, dann hat das Verzeichnis also drei Unterordner.

Nun kann man aus dem Verzeichnis wieder ein Debian-Paket machen, mit folgendem Schritt:

cd /tmp
dpkg -b ./geogebra geogebra_3.0.0-1_all.deb

Sollten hier Warnungen auftauchen, so kann man die ignorieren.

Das fertige Paket kann man dann sofort mittels

dpkg -i geogebra_3.0.0-1_all.deb 

installieren.

Das Verzeichnis /tmp/geogebra sollte man nicht löschen, da bei diesem Verfahren beim späteren Auspacken das DEBIAN-Verzeichnis nicht wiederhergestellt wird.


Debian-Paket vollständig auspacken

Ein Debian-Paket, ist mehrfach gepackt. Die Eigentliche .deb -Datei besteht aus drei einzelnen Dateieb bzw. Paketen, vovon zwei wieder Tar-Archive sind. Zeigen kann man das u.a an der Geogebra-Datei aus dem letzten Abschnitt.

Wir gehen wieder von der Originaldatei aus, packen die aber in ein leeres Unterverzeichnis geogebra.

cd /tmp
mkdir geogebra
cd geogebra
wget http://mirrors.dotsrc.org/getdeb/ubuntu/intrepid/ge/geogebra_3.0.0-0~getdeb1_all.deb

Nun packt man diese Paket aus mittels

ar xf geogebra_3.0.0-0~getdeb1_all.deb

Achtung, hier liegt kein Schreibfehler vor, das benötigte Programm heißt wirklich ar.

Es entstehen drei neue Dateien

  • control.tar.gz
  • data.tar.gz
  • debian-binary

Das ursprüngliche Archiv und die Datei debian-binary können gelöscht werden, es handelt sich da um eine Textdatei mit Versionsinformationen, bei dem angegeben Paket steht z.B. nur 2.0 in dieser Datei.

rm geogebra_3.0.0-0~getdeb1_all.deb
rm debian-binary

Die Datei data.tar.gz kann man ganz einfach mit tar entpacken und anschließend löschen

tar xvfz data.tar.gz
rm data.tar.gz

Die Dateien bzw. die Datei aus control.tar.gz gehört in ein noch nicht existierendes Verzeichnis DEBIAN, hieher muss sie ausgepackt werden, danach kann auch diese Archiv entfernt werden.

mkdir DEBIAN
cd DEBIAN
tar xvfz ../control.tar.gz
rm ../control.tar.gz

In dem Verzeichnis befindet sich jetzt noch eine Datei md5sums, die man auch löschen kann, da ja Veränderungen vorgenommen werden sollen.

rm md5sums
cd ..

Nun ist das Debian-Paket vollständig entpackt und kann bearbeitet werden.


Informationsquellen

Meine Werkzeuge