Skip to main content

Paketerstellung unter Debian / Ubuntu

Immer wieder erstelle ich mal das ein oder andere Script für meine(n) Server und benutze dieses fröhlich. Wenige Wochen oder Monate später dann kommen die ersten Anpassungen oder Änderungen daran und das Script wird mehr oder weniger zum „Freiwild“.

Um eben diesem kleinen Chaos vorzubeugen habe ich für mich nun beschlossen eben diese Scripte und Tools gleich als ein Paket zu schnüren und zu pflegen ( beispielsweise ist dann auch eine Versionierung in SVN oder CVS um einiges eleganter ).

Dieses HowTo bezieht sich lediglich auf die .deb Paketerstellung für bereits fertig kompilierte Programme, oder eben Shell Scripte, welche nicht kompiliert werden müssen.

Beginnen wir mit dem Grundaufbau, der Verzeichnisstruktur welche anhand der Debian Richtlinien eingehalten werden muss, um ein Paket sauber zu erstellen:

  • [Basisverzeichnis] ( am besten der Name des Paketes )
  • [Basisverzeichnis]/usr/bin ( das ausführbare File )
  • [Basisverzeichnis]/debian ( die paketrelevanten Files )

Das im Verzeichnis usr/bin abgelegte Binary-File ( oder beispielsweise auch Python- , Shell-Script ) muss nun auch die execute Rechte des Filesystems erhalten, da diese beim Paketieren übernommen werden. In der Regel ist hier folgendes chmod sinnvoll

chmod 775 Binary-File

Im Verzeichnis debian werden nun folgende Dateien angelegt:

- changelog
- control
- copyright
- rules ( muss execute Rechte besitzen )

Der Aufbau dieser Dateien hat nach bestimmten Regeln zu erfolgen, welche ebenfalls in den Debian Richtlinien einzusehen ist. Ich beschreibe den Aufbau anhand eines einfachen Beispiels.

changelog

Paketname (Version) unstable; urgency=low
* getane Arbeit, Schritt eins
* getane Arbeit, Schritt zwei usw.
-- Name <name@domain.de>  Tue, 17 Aug 2010 11:57:52 +0200

control

Source: Paketname
Section: admin
Priority: optional
Maintainer: Name name@domain.de
Standards-Version: 3.6.3
Build-Depends: debhelper
Package: Paketname
Depends: bash (>= 3.0)
Architecture: all
Description: Das ist die Kurzbeschreibung
und das hier die Langbeschreibung mit Leerzeichen am Anfang !

copyright

Copyright Jahreszahl Vorname Nachname <
E-Mail Adresse>

rules

#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk

Beim Aufbau aller dieser Dateien ist die Einhaltung der Abstände und Leerzeichen strikt einzuhalten !

Um nun fortzufahren müssen erst einmal folgende Pakete auf dem entsprechenden System vorhanden sein. Falls dies nicht der Fall ist, diese einfach mittels apt-get oder dpkg installieren:

  • debhelper
  • dh-make
  • dpkg-dev
  • fakeroot
  • lintian
  • debhelper

Nun in das Basisverzeichnis wechseln ( siehe Aufbau, oben ) und folgendes Kommando absetzen

dpkg-buildpackage

Es erfolgt nun eine Art Kompilierung des Paketes und wenn alle Angaben korrekt sind, läuft dessen Ausführung auch fehlerfrei durch. Das war es dann auch schon, das gewünschte .deb Paket steht nun zur Verfügung und kann wie gewohnt genutzt werden. Zu guter Letzt kann über das Tool Lintian auch noch eine Prüfung, auf die Einhaltung der Konformitätsregeln erfolgen:

lintian <Paketname>

Debian, Linux, Paket


Sven Neidahl

Hallo, ich bin Sven, technikbegeisterter Mensch mit Blog-Ambitionen. Ich liebe Australian-Shepherds, leckeres Essen, laute Musik und Wandern mit anschliessendem Wellness-Programm, hauptsache "Lebe das Leben mit Liebe, Spass und Technik".

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Seite ist durch reCAPTCHA und Google geschütztDatenschutz-Bestimmungen UndNutzungsbedingungen anwenden.

The reCAPTCHA verification period has expired. Please reload the page.