Eigene Debian/Ubuntu Pakete bauen

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

https://packaging.ubuntu.com/html/

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Wir benutzen Cookies um die Nutzerfreundlichkeit der Webseite zu verbessen. Durch Deinen Besuch stimmst Du dem zu.