Dies ist eine Kurzanleitung wie man selber einfache Debian/Ubuntu Pakete bauen kann um z.B. eigene Skripte etc. zu verteilen.
Als erstes wird ein Projekt Ordner erstellt. z.B. hallo-1.0.0
mkdir ~/hallo-1.0.0
Die Struktur innerhalb des Ordners wird so auf das System kopiert, legt Ihr z.B. eine „hallo“ Datei in ~/hallo-1.0.0/usr/bin ab wird sie im Zielsystem in /usr/bin installiert.
mkdir -p ~/hallo-1.0.0/usr/bin mkdir -p ~/hallo-1.0.0/DEBIAN
Im Ordner DEBIAN liegen die Dateien die für das bauen des Pakets benötigt werden.
nano ~/hallo-1.0.0/usr/bin/hallo
Hier ein kleines Testscript das wir verteilen wollen:
#!/bin/sh echo "Hallo :-)"
Rechte die für Dateien gesetzt sind werden übernommen.
chmod +x ~/hallo-1.0.0/usr/bin/hallo
Jetzt noch die „control“ Datei im Ordner DEBIAN erstellen. Die Datei beinhaltet den Namen, die Beschreibung und Abhänigkeiten.
Package: hallo Version: 1.0-0 Section: base Priority: optional Architecture: all Maintainer: "Der Packetbauer <example@example.org>" Description: Ein Skript das Hallo sagt
Das bauen des Pakets wird mit dpkg-deb gemacht.
dpkg-deb --build ~/hallo-1.0.0/
Ist die Erstellung des Pakets erfolgreich kommt folgende Meldung:
mt@dev:~# dpkg-deb --build hallo-1.0.0/ dpkg-deb: Paket »hallo« wird in »hallo-1.0.0.deb« gebaut.
Im Verzeichnis sollte jetzt eine hallo-1.0.0.deb vorhanden sein.
Kleine Kontrolle:
mt@dev:~# dpkg -I hallo-1.0.0.deb neues Debian-Paket, Version 2.0. Größe 776 Byte: control-Archiv= 340 Byte. 172 Byte, 7 Zeilen control Package: hallo Version: 1.0-0 Section: base Priority: optional Architecture: all Maintainer: "Der Packetbauer <example@example.org>" Description: Ein Skript das Hallo sagt
Jetzt kann man versuchen das Paket zu installieren:
mt@dev:~# dpkg -i hallo-1.0.0.deb Vormals nicht ausgewähltes Paket hallo wird gewählt. (Lese Datenbank ... 34468 Dateien und Verzeichnisse sind derzeit installiert.) Vorbereitung zum Entpacken von hallo-1.0.0.deb ... Entpacken von hallo (1.0-0) ... hallo (1.0-0) wird eingerichtet ...
Die Installation war erfolgreich, in /usr/bin ist jetzt die Datei hallo und ist ausführbar.
mt@dev:~# ls -la /usr/bin/hallo -rwxr-xr-x 1 root root 27 Okt 11 16:52 /usr/bin/hallo mt@dev:~# hallo Hallo :-)
Beim Entfernen des Pakets werden die Dateien entsprechend entfernt.
mt@dev:~# apt remove hallo Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Die folgenden Pakete werden ENTFERNT: hallo 0 aktualisiert, 0 neu installiert, 1 zu entfernen und 0 nicht aktualisiert. Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren? [J/n] j (Lese Datenbank ... 34469 Dateien und Verzeichnisse sind derzeit installiert.) Entfernen von hallo (1.0-0) ...
Natürlich ist noch wesentlich mehr möglich und das ist ein einfaches Beispiel. Zum Nachlesen eignen sich folgende Seiten:
https://wiki.debian.org/Packaging/Intro?action=show&redirect=IntroDebianPackaging