Grundlagen der Paketerstellung/Menüeintrag

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Hinweis:

Es gibt Programme, die bereits von sich aus über das Makefile automatisch einen Menüeintrag erstellen. Dann kann man sich dies alles hier schenken. Dies sollte man also zuerst überprüfen, bevor man sich die Mühe macht dies von Hand zu erledigen.

Inhaltsverzeichnis
  1. Ubuntu-Menüeintrag
    1. Erstellen einer .desktop-Datei
    2. Der richtige Ort
  2. Debian-Menüeintrag
  3. Links

Etwas verwirrend kann zu Beginn das Erstellen eines Menüeintrages für eine Anwendung sein, die man paketiert. Wichtig ist zu wissen, dass Ubuntu nicht die Debian-Menüstruktur benutzt, sondern den Freedesktopstandard.

Dies bedeutet, dass man nicht wie unter Debian eine .menu-Datei erstellen muss und diese nach /usr/share/menu verschiebt, wofür es einen simplen Befehl in der debian/rules geben würde, sondern man muss eine Datei .desktop erstellen und auf eine andere Weise an den richtigen Ort bringen.

Trotzdem erstellen viele Leute die Pakete für Ubuntu aus Kompatibilitätsgründen mit einer Menüdatei für Debian in ihrem Paket.

Ubuntu-Menüeintrag

Erstellen einer .desktop-Datei

Die Datei, die man erstellen muss, trägt den Namen PAKETNAME.desktop. Paketiert man also zum Beispiel Vidalia, würde die entsprechende Datei vidalia.desktop lauten. Eine solche Datei kann eine große Anzahl von möglichen Einträgen enthalten. Eine vollständige Liste des momentanen Standards kann man auf freedesktop.org 🇬🇧 einsehen. Mehr über den Aufbau und einige Beispiele für .desktop-Dateien kann man dem Artikel Programmstarter entnehmen.

Das Icon

Das Icon kann im .png-Format sein, sollte aber im Optimalfall im .xpm-Format vorliegen. Außerdem darf es maximal 32x32 Pixel groß sein und 24 Farben besitzen. Der Name des Icons muss wieder PAKETNAME.xpm bzw. PAKETNAME.png lauten.

Das Icon kopiert man am besten nach /usr/share/pixmaps/. Falls das Makefile des Programmes, das man paketiert, dies nicht automatisch macht, fügt man es am besten dort ein, oder, wenn das Programm gar kein Makefile besitzt, macht man es in der debian/rules. Dann fügt man dort einfach im "install: build"-Abschnitt eine Zeile ein, wie zum Beispiel:

1
    cp vidalia.xpm debian/vidalia/usr/share/pixmaps

Dies geht dabei davon aus, dass das Bild im Root-Verzeichnis des Paketes liegt, also im Überordner von debian. Damit dies funktioniert, muss man den Pfad, wohin das Icon kopiert werden soll, in die debian/dirs eintragen:

1
usr/share/pixmaps

Der richtige Ort

Zuletzt muss man noch veranlassen, dass bei Installation des Debianpaketes die .desktop-Datei an den richtigen Ort verschoben wird. Der richtige Ort ist abhängig davon, wohin man das Programm installiert. Programme aus den offiziellen Paketquellen kommen nach usr/, alle anderen nach usr/local/. Danach richtet sich auch der richtige Ort für die .desktop-Datei. Sie gehört entweder nach usr/share/applications oder nach usr/local/share/applications.

Dorthin bekommt man sie, wie zum Icon bereits erläutert, entweder über das Makefile oder, wenn es ein solches nicht gibt, über die debian/rules. Auch hier darf aber nicht vergessen werden, den entsprechenden Ziel-Pfad in die debian/dirs einzutragen.

Weitere Informationen gibt es im Artikel Programmstarter.

Debian-Menüeintrag

Einen Debian-Menüeintrag zu erstellen geht etwas einfacher. Man erstellt im debian/-Ordner einfach eine Datei, die den Namen PAKETNAME.menu trägt. Eine Datei mit minimalem Inhalt, die aber trotzdem ihren Dienst tut, sieht zum Beispiel so aus:

1
2
3
4
5
?package(vidalia): needs="X11" \
                    section="Apps/Net" \
                    title="Vidalia" \
                    command="/usr/local/bin/vidalia" \
                    icon="/usr/local/share/pixmaps/vidalia.xpm"

Die einzelnen Abschnitte sind eigentlich selbsterklärend.

Hat man die Datei für sein Programm erstellt, muss man nur noch in der debian/rules den Befehl dh_installmenu einkommentieren bzw. unterhalb vom Abschnitt build install einfügen. Weiterführende Informationen über das Erstellen eines Debianmenüeintrages kann man unter debian.org 🇬🇧 finden.