GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwenden von AppImage für die Linux-Paketverwaltung

Ein großer Teil der Verwaltung von Linux-Rechnern – insbesondere von Remote-Rechnern – besteht in der Verwaltung und Installation von Software. Wenn bei einer lokalen Anwendung etwas schief geht oder wenn etwas im Dateisystem kaputt geht und repariert werden muss, möchten Sie häufig Updates per Push durchführen, ohne viele Kilometer reisen zu müssen, um sich vor einen physischen Bildschirm zu setzen. Wie ich in meinem Pluralsight-Kurs Wartung und Fehlerbehebung von Linux-Systemen erkläre, können viele Probleme natürlich durch Bash-Skripte gelöst werden, aber es gibt immer noch viele Fälle, in denen es keine Alternative zu einer guten, altmodischen Binärdatei gibt.

Stellen Sie sich vor, dass auf einigen Ihrer Remote-Systeme neue Anwendungen installiert werden müssen, damit die Teammitglieder, die diese Computer verwenden, einige Geschäftsfunktionen ausführen können. Die Möglichkeit, die Integration und Automatisierung eines der wichtigsten Linux-Repository-Systeme – wie Debian oder RPM – zu nutzen, kann Ihre Verwaltungsaufgaben erheblich vereinfachen.

Wie Linus Torvalds nicht müde wird, uns daran zu erinnern, besteht das Problem bei vielen Linux-Softwareverwaltungssystemen darin, dass es zu viele Linux-Softwareverwaltungssysteme gibt. Im Laufe der Jahre wurden die App-Entwicklung und sogar die Einführung von Linux durch die Tatsache erschwert, dass die ganze Zeit und Arbeit, die Sie in die Vorbereitung Ihrer Software für, sagen wir, Debian-Repos investieren, Ihnen nicht helfen wird, wenn Sie sie in RPM-Systeme bringen wollen. Und beides wird dem Zypper-Manager von SUSE nicht helfen.

Eine vielversprechende Lösung für das Software-Silo-Problem ist die Verteilung von Anwendungen mit ihren eigenen abgeschlossenen Umgebungen, die auf jeder Linux-Distribution funktionieren. Eine Option für einen Standard in diesem jungen und wachsenden Bereich ist AppImage.

Arbeiten mit AppImages

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

Ich bin bei AppImage voll dabei. Wie bei den anderen Paketverwaltungssystemen, die ich erwähnt habe, steht eine Menge Komplexität zur Verfügung, falls Sie dies wünschen. Aber im Kern sind AppImages eigentlich ganz einfach. Anstatt wie die meisten anderen Paketmanager über ein Repo zu arbeiten, sind AppImages einzelne, eigenständige Dateien, die direkt gesendet oder über eine Website geteilt werden können.

Hier ist eine Illustration seiner Schönheit. Während ich mit AppImages herumgespielt habe, bin ich auf eine sehr alte Diskussion in einem Tech-Forum gestoßen, die mich zu einem ebenso alten und verlassenen GitHub-Projekt und zugehörigen YAML- und Rezeptdateien geführt hat. Sie wurden entwickelt, um automatisch die ziemlich komplexe Infrastruktur aufzubauen, die zum Vorbereiten des Archivs erforderlich ist, das zum Generieren eines AppImage-Pakets benötigt wird. Obwohl diese Infrastruktur für die Ausführung auf einer fünf Jahre alten Version von Ubuntu entwickelt wurde, habe ich alles zusammengefügt und das appimagetool ausgeführt Befehl dagegen erstellte es eine AppImage-Datei, die auf meinem aktuellen Desktop nahtlos funktionierte. Ich glaube nicht, dass es zu viele fünf Jahre alte GitHub-Projekte dieser Komplexität gibt, die mit anderen Technologien ohne ernsthafte Überarbeitung laufen könnten.

Aber ich werde nicht dorthin gehen. Stattdessen werde ich Ihnen zeigen, wie es mit einer sehr einfachen Hello World-Anwendung funktioniert. Stellen Sie zunächst sicher, dass das AppStream-Paket lokal installiert ist.

Führen Sie für ein Debian-basiertes System Folgendes aus:

$ sudo apt install appstream

Und für RPM-Systeme verwenden Sie:

$ sudo dnf install appstream

Klonen Sie das Git-Repository, auf das in diesem Artikel verwiesen wird, auf dem dieses Beispiel basiert:

$ git clone https://github.com/boolean-world/appimage-resources
$ cd appimage-resources
$ ls hello-world-appimage

Als nächstes cd in das neue Verzeichnis, das Git erstellt hat, und schau dich um. Hier gibt es zwei Verzeichnisse. Verwenden Sie hello-world-appimage; das andere ist ein komplexeres Projekt, und Sie sollten es auch versuchen.

Der helloworld.desktop Datei ist das, was Linux-GUI-Systeme lesen, um zu wissen, wie sie mit der Art und Weise umgehen, wie sie ein Desktop-Symbol darstellen. Wie sich herausstellt, wird die Art und Weise, wie die Datei derzeit geschrieben ist, Ihnen später Probleme bereiten, also nehmen Sie eine kleine Änderung vor:Fügen Sie ein Categories= hinzu Zeile und geben Sie ihr den Wert GNOME . Und vergessen Sie nicht das Semikolon am Ende:

$ nano hello-world-appimage/helloworld.desktop
        add Categories=GNOME;

Laden Sie eine vorkompilierte Kopie des appimagetool herunter Binary aus dem AppImage-GitHub-Projekt. Besuchen Sie unbedingt die GitHub-Site – dort gibt es jede Menge exzellenter Dokumentation und Ressourcen. Sobald die Binärdatei heruntergeladen ist, machen Sie die Datei ausführbar und verweisen Sie auf das hello-world-appimage Verzeichnis. Aber zuerst müssen Sie ihm sagen, welche Architektur Sie wollen. Aus irgendeinem Grund ein Tool mit einem Namen, der auf x86_64 endet ist alles wackelig, wenn es darum geht zu entscheiden, ob eine Anwendung mit x86_64 erstellt werden soll oder nicht (ich bin mir nicht sicher, was dort vor sich geht):

$ wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
$ chmod +x appimagetool-x86_64.AppImage
$ ARCH=x86_64 ./appimagetool-x86_64.AppImage hello-world-appimage

Wenn Sie keine bösen Fehlermeldungen sehen, können Sie es gleich ausprobieren:

$ ls
$ ./hello-world-appimage-x86_64.AppImage

Schlussfolgerung

AppImage ist eine unglaublich effektive Wahl für die Paketverwaltung. Wenn Sie es erkunden, werden Sie feststellen, dass es eine großartige Alternative zu den Standard-Linux-Distributionen ist.


Linux
  1. Linux-Tipps zur Verwendung von Cron zum Planen von Aufgaben

  2. So packen Sie Python-Anwendungen für Linux

  3. 8 Linux-Befehle für effektives Prozessmanagement

  4. 4 Tools zum Erstellen von eingebetteten Linux-Systemen

  5. 15 aptitude-Befehlsbeispiele für die Paketverwaltung unter Linux

Linux-Grundlagen:30 YUM-Befehlsbeispiele für die Linux-Paketverwaltung

Verwenden von ifstat für Linux-Netzwerkstatistiken

Die 15 besten Datenbankverwaltungssysteme für Linux Desktop

Befehle für das Prozessmanagement in Linux

Die 15 besten Dokumentenverwaltungssysteme für Linux-Systeme

So listen Sie installierte Pakete in Linux mithilfe der Paketverwaltung auf