Debian-Pakete erstellen
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
- http://de.wikipedia.org/wiki/Debian-Bin%C3%A4rpaket
- http://pluto.htu.tuwien.ac.at/How-To_Apt-Repository/.deb_Pakete
- http://www.linux-community.de/Internal/Artikel/Print-Artikel/LinuxUser/2008/02/Wie-am-Schnuerchen/(article_body_offset)/2
- http://debiananwenderhandbuch.de/debianpaketeerstellen.html
- https://help.ubuntu.com/6.10/ubuntu/packagingguide/C/gs-tools.html