Deb-Paket für Ubuntu/Debian erstellen

Diese Anleitung zur Erstellung von Deb-Paketen bezieht sich auf bereits kompilierte Programme, bzw. Programme die nicht kompiliert werden müssen (z.B. Python- oder Bash-Skripte). In dieser Anleitung wird nicht über die Erstellung von Deb-Paketen aus dem Quelltext gesprochen. Lasst euch nicht von der Länge der Anleitung abschrecken. Das dahintersteckende Prinzip ist ganz einfach, hat man es ersteinmal verstanden. Ich versuche hier lediglich jeden Schritt so genau und eindeutig wie möglich zu erklären.

—–

1. Als allererstes erstellen wir einen Ordner, zum Beispiel auf dem Desktop, mit dem Namen des Programmes, in unserem Beispiel nenn wir ihn namedesordners. In diesem Ordner erstellen wir noch zwei Ordner, einen benennen wir usr, den andere DEBIAN. In letzteren kommt die control-Datei, eine einfache Textdatei, welche Paketinformationen enthält. Hier steht z.B. der Name des Paketes, die Versionsnummer, die Kategorie, usw. Hier eine Beispieldatei:

Package: namedesprogrammes
Version: 0.7
Section: admin
Priority: optional
Architecture: all
Essential: no
Depends:
Installed-Size: 400
Maintainer: Name des Paketerstellers <name@adresse.com>
Description: Dies ist die Beschreibung des Paketes

—–

2. Nun öffnen wir den zweiten Ordner, usr. Dieser Ordner entspricht später, wenn wir das erstelle Deb-Paket installieren, dem Verzeichnis /usr im System. Nun müssen wir die Dateien und Ordner an dem Ort plazieren, wo sie sich später auch im System befinden sollen. Benötige Ordner müssen wir natürlich erstellen.

/usr/share/namedesprogrammes/

In diesem Ordner befindet sich das Programm. Die Datei welche ausgeführt werden muss wurde natürlich vorher ausführbar gemacht. In unserem Beispiel besteht das Programm nur aus einer Datei namens programm.sh.

—–

3. Im usr-Ordner erstellen wir nun einen neuen Ordner namens bin. In diesen Ordner legen wir die Datei namedesprogrammes und machen sie ausführbar (!). Über diese Datei wird durch den Befehl namedesprogrammes später das Programm gestartet. Der Inhalt der Datei sieht wie folgt aus.

#!/bin/bash

cd /usr/share/namedesprogrammes
./programm.sh

Wie wir sehen, macht diese Datei nichts anderes, als in das Verzeichnis zu wechseln, wo sich das Programm befindet und führt anschließend das Programm aus. Theoretisch könnten wir nun das Paket eigentlich bauen, denn die Grundfunktionalität ist bereits enthalten. Würden wir das Paket installieren und anschließend die Konsole oder den Ausführen-Dialog öffnen und den Befehl namedesprogrammes eingeben, würde das Programm korrekt starten.

—–

4. Wir sind allerdings noch nicht zufrieden und wollen, dass uns das Programm im Anwendungen-Menü angezeigt wird. Nun, dazu benötigen wir noch eine weitere Datei. Diese muss sich in /usr/share/applications befinden. Wir erstellen die Datei namedesprogrammes.desktop und geben ihr folgenden Inhalt.

[Desktop Entry]
Encoding=UTF-8
Name=namedesprogrammes
Comment=Dies ist ein Kommentar welcher beim Ueberfahren mit der Maus angezeigt wird
Exec=namedesprogrammes
Terminal=false
Type=Application
Categories=GNOME;GTK;System;

—–

5. Es ist weiterhin möglich, dem Programm ein Symbol zuzuweisen. Dazu legen wir den Ordner usr/share/pixmaps an und erstellen dort eine Symboldatei, zum Beispiel namedesprogrammes.png. In der namedesprogrammes.desktop-Datei muss folgende Zeile hinzugefügt werden.

Icon=namedesprogrammes.png

—–

6. Nun kommt der Moment, an dem das Paket erstellt werden muss. Dazu werden keine Ketten von Befehlen benötigt, sondern nur ein einziger. Falls sich der ganz am Anfang erstellte Ordner auf dem Desktop befindet, wechseln wir in der Konsole zum Desktop.

cd /home/benutzername/Desktop

Dann führen wir folgenden Befehl aus um das Deb-Paket zu erstellen.

dpkg -b namedesordners namedesprogrammes-0.7-all.deb

Das all vor dem .deb beschreibt, dass das Programm auf allen Architekturen funktioniert. Wir könnten statt all auch i386 oder amd64 hinschreiben. Das fertige Paket befindet sich nun auf dem Desktop. Ansonsten gibt dpkg eine Fehlermeldung aus und beschreibt, wieso das Paket nicht erstellt werden konnte.

Achtung! Es sollte darauf geachtet werden, vor der endgültigen Erstellung des Paketes mit dpkg -b die unsichtbaren Sicherungsdateien zu löschen, also alle Dateien mit ~ am Ende. Diese werden ansonsten mit in das Paket verpackt und verbrauchen unnötig Speicherplatz.

—–

Ich hoffe, dass ich mit dieser Anleitung einigen helfen kann. Viel Spaß beim Deb-Bauen! Falls es Verbesserungsvorschläge gibt, dann schreibt sie hier als Kommentare rein.

Veröffentlicht in allgemein. Schlagworte: . 16 Kommentare »

16 Antworten zu “Deb-Paket für Ubuntu/Debian erstellen”

  1. N3X0NIC Sagt:

    Yeah, eine coole Anleitung :D
    Ich bin jetzt im Deb-Paket-Bau-Wahn ^^

    Verbesserungsvorschlag:
    die Datei in “/usr/bin” muss noch mit
    “chmod a+rx” für andere “berechtigt werden”
    Weis nicht ob du das mit “ausführbar machen” gemeint hast ;)

    Sonst echt Super :)

    Gruss
    Immanuel

  2. Yoschi Sagt:

    Moin,
    großartige Anleitung, Danke echt jetzt :-)

    Es wäre super wenn du noch eine Anleitung erstellen könntest wie man ein Repository anlegt =)

  3. N3X0NIC Sagt:

    Ja, genau.
    Das wäre auf jedenfall cool ;)

  4. N3X0NIC Sagt:

    Oder noch lieber würde ich wissen, wie man Debian Pakete erstellt aus Programmen im Quelltext, also welche die noch kompiliert werden müssen.

  5. Eddi2k Sagt:

    @ N3X0NIC

    Um Deb aus dem Quelltext zu erstellen nutze ich immer checkinstall. Ist in den Packetquellen zu finden.

    1. ./configure
    make
    sudo make install

    2. sudo checkinstall

    Dann einfach die fragen von checkinstall abarbeiten und Fertig!

    LG

  6. Valentin Sagt:

    Hallo Eddi2k!

    Richtigerweise funktioniert checkinstall (das Programm muss vorher natürlich installiert werden über den Paketmanager) so:

    ./configure
    make
    sudo checkinstall (kein sudo make install)

    Allerdings eignet sich checkinstall nur dazu, Pakete für den eigenen Gebrauch zu erstellen, da die kompilierten Pakete hardwareabhängig sind und auf anderen PCs oft nicht funktionieren.

  7. Andre Sagt:

    Habe erstellen verstanden aber was fürn Programm ist
    das, beziehungsweise kann ich damit Windows umbauen?

  8. Apfel Sagt:

    Ich versteh zwar kein Wort. Aber mit Windows haben .debs nun wirklich nichts zu tun

  9. scrawl Sagt:

    Cool, sowas hab ich gesucht.

  10. Gnubuntux - GNU, Linux und Ubuntu Sagt:

    [...] Kommentare scrawl zu Deb-Paket für Ubuntu/Debian erstellenChristian zu Dell XPS M1330 – Test auf Linux-TauglichkeitApfel zu Deb-Paket für [...]

  11. Paket für Songbird « Gnubuntux - GNU, Linux und Ubuntu Sagt:

    [...] sich das Paket selbst erstellen will, sollte sich folgenden Artikel von mir einmal genauer ansehen. Deb-Paket für Ubuntu/Debian erstellen. Alle anderen können sich das fertige Paket hier herunterladen und mit einem einfachen Doppelklick [...]

  12. heartdisease Sagt:

    Herzlichen Dank, dein kleines Tutorial hat mir endlich verständlich gemacht wie man sich schnell und einfach ein DEB-Paket bastelt.

    Für die, die DEBs aus dem Quellcode erstellen wollen: einfach ein eigenes verzeichnis erstellen und dieses dem configure-script per –prefix-dir übergeben (Bsp.: ./configure –prefix-dir=/home/user/programmname).Anschließend einfach “make && make install” ausführen und fertig :)

  13. hornisse Sagt:

    Danke!!!

    Damit habe ich endlich mal mein einziges zusätzliches Java-Programm anständig verpackt. Habe unter Punkt 6 nur vor den Befehl noch “fakeroot” geschrieben.

  14. matthias Sagt:

    Wie ausführbar machen? Bei mir funktioniert das nicht.

  15. matthias Sagt:

    jetzt funktioniert’s schon

  16. toni Sagt:

    Kann man debian pakete auch mit windows 7 erstellen?????


Einen Kommentar schreiben