Anmeldung

In diesem Artikel erklären wir als Fortsetzung dessen, was im vorherigen Abschnitt erklärt wurde, wie Sie unsere Anwendung, die wir vom System unabhängig gemacht haben, in ein App-Image verwandeln.

Teil 1 unseres Artikels von dieser Adresse Sie können zu erreichen.

Zuerst wird die Appimage-Datei dekodiert und verpackt, dann wird die interne Struktur der Appimage-Datei besprochen.

Auflösen von Appimage-Dateien

zu jeder appimage-Datei –appimage-extract Appimage-Datei wird aufgelöst, wenn Parameter hinzugefügt wird.

Appimage-Verpackung

Appimage-Dateien appimagekit verpackt mit Appimagekit wird wie folgt verwendet.

ARCH=x86_64 appimagetool-x86_64.AppImage /home/user/appimage-project

Unsere Appimage-Datei wird in einem übergeordneten Verzeichnis unseres Projektverzeichnisses erstellt.

Erstellen eines Verpackungsindex

Zuerst müssen wir das Paketverzeichnis erstellen. Appimage-Dateien benötigen 3 grundlegende Dateien. Diese Apprun Datei ist der Anwendungsstarter und das Anwendungssymbol.

$ ls appimage-test test.desktop test.png AppRun ... test.bin libs/ ld-linux-x86-64.so.2 ...

Wir müssen unsere Anwendung, die wir im vorherigen Abschnitt unabhängig vom System gemacht haben, wie im obigen Beispiel platzieren. Hier .desktop Schauen wir uns unsere Erweiterungsdatei genauer an.

[Desktop-Eintrag] Name=Testanwendung Exec=test.bin Icon=test Type=Application Categories=Utility;

Burada Name der Name unserer Anwendung, Exec der Name der auszuführenden Datei, Symbol Gibt den Namen des Anwendungssymbols an.

  • Nicht: Symbol Es muss ein Anwendungssymbol mit demselben Namen wie dem im Abschnitt angegebenen geben.

AppRun-Datei

Die AppRun-Datei ist die Datei, die ausgeführt wird, wenn appimage ausgeführt wird. In dieser Datei sind die zum Ausführen unserer Anwendung erforderlichen Befehle definiert.

#!/bin/bash echo "Hallo Welt"

Oben haben wir einen einfachen Befehl verwendet, der auf den Bildschirm schreibt. Hier sind die zu beachtenden Punkte:

  • Weil Appimage so konzipiert ist, dass es auf allen Systemen funktioniert / Bin / sh stattdessen / bin / bash bevorzugt.
  • Eine gepackte appimage-Datei wird gemountet und schreibgeschützt ausgeführt.
  • Die AppRun-Datei muss die gelbe ausführbare Datei sein. Es muss kein Drehbuch sein. Wenn Binärdateien verwendet werden sollen, müssen diese statisch kompiliert werden.

Lassen Sie uns unsere Anwendung in unserer AppRun-Datei wie im vorherigen Abschnitt ausführen. Zuerst müssen wir unseren aktuellen Standort bestimmen. Dafür Link lesen Wir können den Befehl verwenden.

#!/bin/bash export SELF=$(readlink -f "$0") export HERE=${SELF%/*} "${HERE}"/ld-linux-x86-64.so.2 --library- Pfad "${HERE}"/libs/ "${HERE}"/test.bin

Im folgenden Beispiel das Verzeichnis appimage mount KLICKEN SIE HIER Wir haben es als Umgebungsvariable definiert und unsere Anwendung damit gestartet.

Umgebungsvariablen

Im Rest des Artikels konzentrieren wir uns auf die Definitionen, die erforderlich sind, damit unsere Anwendung ordnungsgemäß funktioniert.

In unserer AppRun-Datei glib Für Schemas werden Umgebungsvariablendefinitionen wie folgt vorgenommen. Dann wird unser Glib-Schema kompiliert.

# Fügen Sie unserer AppRun-Datei Folgendes hinzu. export GSETTINGS_SCHEMA_DIR="${HERE}"/glib-schemas # Unser Glib-Schema wird wie folgt kompiliert. glib-compile-schemas Projektverzeichnis/glib-schemas

Qt-Plugin-Verzeichnis QT_PLUGIN_PATH durch die Variable angegeben.

export QT_PLUGIN_PATH="${HERE}"/qt5/plugins

Die App normalerweise / Usr / share der Speicherort der Dateien, die sich im Verzeichnis befinden sollten XDG_DATA_DIRS Möglicherweise müssen wir es mit einer Variablen definieren.

exportiere XDG_DATA_DIRS="${HERE}"/share

Python-Modulverzeichnis PYTHONPFAD ist definiert mit.

export PYTHONPATH="${HERE}/python-shared"

Perl-Bibliotheksverzeichnisse PERLLIB ist definiert mit.

export PERLLIB="${HERE}/perl-libs"