Einfache Deployment Pakete für Debian / Ubuntu bauen

Einfache Deploymentpakete für Debian / Ubuntu bauen.

Es gibt für Debian mehrere Tools um source und binäre Pakete zu installieren. Manchmal möchte man aber nur ein paar Dateien im Dateisystem bereitstellen und nach dem kopieren ein Shellscript ausführen (Postnatal Skript). Dieser Post beschreibt die Schritte um ein minimales Debian Paket zu erstellen, das Dateien an einen definierten Ort im Zielsystem kopiert und ein PostInstall nach der Installation ausführt.


Zunächst legen wir ein Verzeichnis an mit dem Unterverzeichnis „DEBIAN":

 

mkdir -p ./debianpackage/DEBIAN

Debian control und postinst File

Das DEBIAN Verzeichnis muss mindestens ein Control File enthalten, das Meta Informationen enthält. Ausserdem haben wir noch ein Postnatal script hinzugefügt. Die Möglichkeiten sind hier noch viel weitreichender, aber für unseren Anwendungsfall reicht es vollkommen aus.

Wir legen also ein „control“ sowie eine „postinst“und machen die postinst Datei danach schreibar:

 

touch ./debpackage/DEBIAN/control
touch ./debpackage/DEBIAN/postinst
chmod 770 ./debpackage/DEBIAN/postinst

Für die Control Datei (debpackage/DEBIAN/control) ist der syntaktische Aufbau wichtig:

 

Package: myapp
Priority: optional 
Section: misc 
Maintainer: You Name <user@mail.com> 
Architecture: all 
Version: 1.0       
Depends: 
Description: The Package description

Neben den Metadaten werden natürlich noch die eigentlichen Dateien benötigt. Dazu kann einfach im Pakete die Struktur analog zur Dateisystemstruktur im Zielsystem hinterlegt werden.

touch ./debpackage/usr/sbin/mysript.sh

Das Debian / Ubuntu Paket packen

Final muss das Paket noch gepackt werden:

 

dpkg -b ./debpackage indexpicker.deb

Diese Variante eignet sich natürlich nur um Plattform unabhängigen code zu deployen. Generell können mit Debian Paketen aber weitaus spezifischere Pakete deployed werden.

 

Navigation