Wie generiere ich automatisch eine .desktop-Datei?

7

Es gibt eine .debSoftware, die keine .desktopDatei hat. Ich habe diese Datei erstellt. Ich möchte ein weiteres Paket für diese Software erstellen. Wenn der Benutzer es installiert, möchte ich, dass die .desktopDatei automatisch generiert und abgelegt wird/usr/share/applications/

Wie geht das?

Lynob
quelle

Antworten:

6

Klingt so, als ob Sie nur Ihr .debArchiv extrahieren , Ihre .desktopDatei hinzufügen und das Paket neu erstellen möchten . Dies ist ein ziemlich einfacher Prozess. Extrahieren:

dpkg-deb -R package.deb extract_dir

Hinweis -Rist ein Rohextrakt, um auch die Steuerdateien abzurufen. Als nächstes erstellen, /usr/share/applications/falls noch nicht vorhanden:

mkdir -p extract_dir/usr/share/applications/

Fügen Sie dann einfach Ihre .desktopDatei hinzu (achten Sie darauf, dass der Name nicht mit anderen Elementen in Konflikt steht, die Sie wahrscheinlich installieren) und erstellen Sie Folgendes neu:

cp desktop_file.desktop extract_dir/usr/share/applications/
dpkg-deb -b extract_dir package_new.deb

Beachten Sie dpkg-deb -b extract_dir ., dass Sie das Paket auch mit seinem kanonischen Namen erstellen können. Möglicherweise müssen Sie jedoch zuerst Ihr Original aus dem Weg räumen, da es sonst beschädigt wird.

Quellen:
Graeme
quelle
1

Wenn Sie dieses Paket erstellen, können Sie ein Skript ausführen oder einige Befehle ausführen, nachdem der Benutzer es installiert hat. Dies ist die Verwendung des 'postinst'-Shell-Skripts, das sich im Debian-Ordner im Quellpaket befindet. Daraus können Sie eine .desktop-Datei generieren oder etwas anderes tun.

'postinst': Dies ist ein normales Shell-Skript, das alle Befehle enthält, die nach der Installation des Pakets (in der richtigen Reihenfolge) ausgeführt werden sollen. dpkg führt dies automatisch aus.

Sie müssen also nur ein Shell-Skript erstellen, bevor Sie Ihr Quellpaket in ein Binärpaket packen, es als 'postinst' bezeichnen und in das Debian-Verzeichnis stellen.

Lesen Sie mehr darüber: /ubuntu/101962/script-to-only-execute-during-first-install-of-a-package

inzous
quelle
Okay, können Sie mir bitte das Skript zeigen, das die .desktopDatei generiert , wenn eine .debDatei ausgeführt wird? und wo genau platzieren?
Lynob
Da Sie die .desktop-Datei selbst hatten, können Sie dieses .deb-Paket am einfachsten entpacken, in die .desktop-Datei einfügen und neu erstellen. $ dpkg-deb -extract name.deb Ordner => Dateibaum extrahieren $ dpkg-deb -e name.deb Ordner / DEBIAN => Steuerdateien extrahieren, die für Pakete benötigt werden ... der "Ordner /" zeigt den Verzeichnisbaum der Dateien an im Paket enthalten, also legen Sie einfach Ihre .desktop dort ab ... $ dpkg-deb -b Ordner => neu erstelltes Paket, generieren Sie eine neue Ordner.deb, die Ihre .desktop-Datei enthält
Incous
Leider konnte ich das Format in meinem Kommentar nicht verwenden. Bitte schauen Sie sich das an: g-loaded.eu/2008/01/28/how-to-extract-rpm-or-deb-packages/… Ich habe es auf meinem Debian getestet.
Incous
Alternativ dazu können Sie postinsteine .desktop-Datei in einem Deb-Paket erstellen. Wenn das Paket extrahiert wird, wird die Desktop-Datei in das gewünschte Verzeichnis kopiert. Siehe auch die Antwort von @ Graeme.