Software unter Linux

Registriert
Jan. 2016
Beiträge
2.525
Software unter Linux

Inhaltsverzeichnis
Übersicht
Erforderliche Vorkenntnisse
Vergleich zu Windows
Software unter Linux
Linux - distributionsunabhängige Paketformate
SNAP
Hilfe und Support
Empfehlungen/Erfahrungen des Autors
Feedback, Kritik, Wünsche
Änderungen
TODO-Liste


Übersicht

Dieser Thread ist eine Ergänzung zum Community Meta Guide und soll die Thematik der Software unter Linux etwas erklären.
Es wird der "normale" Weg über die Repositories erklärt sowie kurz auf das Prinzip von Snap und Flatpaks eingegangen.


Erforderliche Vorkenntnisse

Hier wird bewusst keine Distribution im speziellen erklärt, sondern es soll möglichst allgemein die Softwareverwaltung unter Linux beschrieben werden.
Etwas Vorkenntnisse im Bereich User und Root (sudo Befehl) können helfen, sind aber nicht notwendig.


Vergleich zu Windows

Unter Windows wird für gewöhnlich ein Installer (z.Bsp. eine .exe oder .msi Datei) von einer Webseite geladen und damit die Software installiert.
Updates sind dann Aufgabe des Herstellers und es gibt verschiedene Ansätze, wie diese umgesetzt werden.
Manche prüfen und installieren beim Programmstart, andere geben nur eine Benachrichtigung, wieder andere lassen extra Software als Dienst mitinstallieren, der stetig die Aktualität prüft und so weiter.

Windows selber hat einen eigenen Updatedienst (Windows Updates) über den es aktualisiert wird und neue Features erhält.


VORTEILE:
  • Software kann unabhängig des OS immer auf der neusten, beim Entwickler verfügbaren Version gehalten werden
  • Software kann abhängige Pakete unabhängig von anderer Software mitbringen/verwalten
NACHTEILE:
  • Software aus nicht geprüften Quellen ist potentiell gefährlich
  • viel Potential kompromittierte Software zu laden (Malware, Chip Installer und co)
  • oft redundante Installation von abhängigen Paketen
  • umständliche Handhabung bei Installation und Aktualisierung



Software unter Linux


Linux - offizielle Repositories

Eine Linuxdistribution bringt einen eigenen Softwarekatalog mit.
Dieser wird mittels einer Paketverwaltung aktuell gehalten und betrifft das OS selbst, sowie die installierte Software.
Oft besteht diese Paketverwaltung aus mehreren "Schichten", die aufeinander aufbauen:
  1. Eine Software, welche die eigentlichen Pakete bearbeiten kann (entpackt, installiert, löscht)
    • zum Beispiel dpkg für DEB oder rpm für RPM
  2. Eine Software, welche die Abhängigkeiten der benötigten Pakete verwaltet und sie dann mittels der ersten Schicht, installiert, löscht oder updatet
  3. Eine Software, welche eine GUI für den User bereitstellt (ähnlich einem Appstore) und mittels der zweiten Schicht die Pakete sucht, installiert, löscht und updatet
Welche Paketverwaltung genutzt wird, hängt von der jeweiligen Distribution ab.

Bekannte Kombinationen wären:
  • .deb / apt - genutzt von Debian, Ubuntu ...
  • .rpm / yum - genutzt von Fedora ...
Vorsicht:
Immer wenn ihr eine Anleitung zu Linux aus dem Internet befolgt, ist es eure Verantwortung die richtigen Befehle für eure Paketverwaltung zu benutzen!
Wer hier den einfachsten Weg sucht, dem sei an dieser Stelle eine Distribution mit DEB Paketen und APT empfohlen.
Die Zeile sudo apt install kennt mancher vllt von seinem Raspberry Pi...



Linux - Fremdquellen

Um auch an Software zu kommen, welche in den offiziellen Paketquellen der eigenen Distribution nicht oder nur veraltet geführt wird, gibt es oft die Möglichkeit nicht offizielle Quellen einzubinden oder zu nutzen.

Bei .deb Systemen wären das Beispielsweise PPAs oder bei Arch Linux das AUR.

Ebenso kann man, ähnlich wie bei Windows, fertige Pakete für die eigene Distribution von Webseiten herunterladen und von der Paketverwaltung installieren lassen.
Das ist oft der bevorzugte Vertriebsweg für proprietäre und/oder kostenpflichtige Software.
(zum Beispiel Skype von Microsoft)
Hier gilt immer Vorsicht, da diese Pakete auf eigene Verantwortung installiert werden.
Ihr müsst den Entwicklern/Vertreibern vertrauen.



VORTEILE:
  • Pakete aus den offiziellen Paketquellen sind unbedenklicher, da geprüft
  • Installation ist sicher, da die Pakete per Checksum und Keyring geprüft werden
  • kaum redundante Installation von abhängigen Paketen
  • einfache Handhabung von Installation und Aktualisierung
NACHTEILE:
  • Pakete werden je nach Philosophie nur sehr zögerlich aktualisiert (siehe LTS/Rolling Release usw)
  • nicht jede Software ist in jeder Distribution vorhanden
  • evtl hinzugefügte, externe Paketquellen können das System gefährden
  • parallele Installation verschiedener Versionen der selben Software nicht immer problemlos möglich


Linux - distributionsunabhängige Paketformate

Mangelnde Software wird oft als größter Nachteil unter Linux genannt.
Einer der Gründe, der als Ursache für diesen Umstand genannt wird, ist die unterschiedliche Art der Paketverwaltungen.

Ein Softwareprogrammierer muss seine Software für die jeweilige Paketart packen oder vom Distromaintainer packen lassen.
Problematisch kann es werden, wenn die verwendete Distribution bestimmte, von der Software benötigte Pakete nicht in ihren Paketquellen hat.
Die Gründe dafür können Vielfältig sein:
  • Version zu alt
  • Software ist proprietär und die Distribution stellt nur freie Software bereit
  • sie wurde einfach nie mit aufgenommen, da es eine Abhängigkeit eines nicht verwendeten Desktops oder ähnliches ist

Um solche und andere Dinge zu vermeiden, wurden zusätzliche Wege entwickelt um Software auch auf andere Art zu installieren.

Zwei aktuelle und relativ ähnliche Ansätze sind Snap und Flatpak

Beide sind Paketcontainer für Software, die alle wesentlichen, benötigten Abhängigkeiten selber mitbringen.
So kann ein Programm eine Abhängigkeit in beliebiger Version mitführen auch älter oder neuer, als die Version aus den Paketquellen.
Dies ist Vor- und Nachteil zugleich, da die Pakete dadurch sehr groß werden können.

Durch die Kapselung der Software, kann gezielter gesteuert werden, welche Berechtigungen eine Software haben darf, es kann aber auch Einschränkungen bei der Integration ins bestehende System geben (z.Bsp. eigenes Theme statt System Theme).

Beide Systeme werden aktiv weiterentwickelt und es werden große Fortschritte erzielt.

Snap und Flatpak sind unabhängig* von der genutzten Distribution und die parallele Nutzung ist problemlos möglich.
* siehe jeweilige Hinweise auf der Projektseite


In den GUIs zur Paketverwaltung wird einem unten dann die Quelle angezeigt (Paketquelle oder Snap/Flat):

SNAP:
spotify-snap.png



FLATPAK:
spotify-flatpak.png



SNAP

Snap ist die proprietäre Lösung von Canonical und setzt auf den zentralen Vertrieb der Apps durch ihren Snap-Store.

Snap ist auf Ubuntu (und den meisten Derivaten) ZorinOS und Solus 3 vorinstalliert und lässt sich auf vielen weiteren Distros nachinstallieren oder aktivieren.

Snaps können dann per Terminal (sudo snap install APPNAME) oder per snap-App Snap-Store, oder per Integration in eure bestehende Paketverwaltung installiert werden (siehe dazu Distrospezifische Anleitung).

FLATPAK

Flatpak ist die freie Lösung des freedesktop Projekts und setzt auf dezentralen Vertrieb, bietet aber zusätzlichen den Flathub als zentralen Vertriebsweg.

Flatpak kommt komplett vorkonfiguriert auf:
* (flatHub Repo optional aktivierbar)

Flatpak lässt sich auf sehr vielen Distros nachinstallieren.

Flatpaks können dann per Terminal (flatpak install APPNAME) oder per Integration in eure bestehende Paketverwaltung installiert werden. (oft gibt es eine Gnome-Software Version mit Flat Unterstützung)


Hilfe und Support

Hier sind die offiziellen Wikis/Dokus eurer genutzten Distribution eure erste Anlaufstelle.

Allgemein:
Flatpak
Snap
Paketverwaltungen Wikipedia
Empfehlungen/Erfahrungen des Autors

Ich bevorzuge in der Regel Software aus den offiziellen Repositories.
Bei Software aus Fremdquellen gilt es immer von Fall zu Fall zu unterscheiden.
Beispiel:
Manche Hersteller geben für Arch linux Systeme ein "offizielles" AUR Paket an, da hätte ich tendenziell weniger Bedenken.
Es gibt aber auch viel Software im AUR, die einfach von Usern gepflegt wird.
Wie weit das eigene Vertrauen da geht, sollte immer vom Projekt abhängig sein.
Wenn ein bekanntes Github-Projekt eine AUR Version anbietet, ist das sogar zu begrüßen!
Hier heißt Misstrauen auch nicht unbedingt, dass der Autor böses im Schilde führt; es reicht schon ein Projekt nicht weiter zu pflegen, um evtl beim nächsten Update Probleme mit Abhängigkeiten zu bekommen.

Gleiches gilt für PPAs für Debian basierte Systeme und co.

Snaps und Flatpaks sind sinnvolle Ergänzungen für die Linux Welt und Apps wie Spotify sind prädestiniert für den Einsatz dieser Paketformate.

Der proprietäre und zentrale Ansatz Canonicals bei ihrem Snap Format ist nicht begrüßenswert, ich versuche, falls möglich, Flatpaks zu nutzen.

Funktion ist bei beiden gegeben.
Manche Apps brauchen als Snap/Flatpak Version minimal mehr Aufwand (z.Bsp. ein extra Schritt um die Browser Integration bei KeepassXC zu aktivieren) oder haben kleine Einschränkungen (eigenes Theme).


Feedback, Kritik, Wünsche


Die Linux Guides der Community können durch jeden User bereichert werden!
Habt ihr Vorschläge oder Ideen, prüft ob diese schon in der TODO-Liste des jeweiligen Themas aufgenommen wurden.
Für eigenen Input einfach mit den jeweiligen Autoren per PN Kontakt aufnehmen.
Änderungen

  • 05.01.2020: Thread erstellt mit erstem Entwurf
  • 05.01.2020: Infos zu Flatpak ergänzt
  • 12.02.2020: Manjaro in Flatpak Liste aufgenommen
TODO-Liste

  • Appimages aufnehmen
  • eigenes Kompilieren/Bauen aufnehmen?
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Avero, DerMuuux, kryzs und 22 andere
Danke für den ganzen Aufwand... aber eines möchte ich doch noch loswerden. Sorry im Voraus. 😊

  • Wir reden hier von Open Source, richtig?
  • Da gibt es GAR KEINE Repositories. Diese sind ein Entgegenkommen der Distributoren.
  • Unter Open Source gibt es, man ahnt es... Quellcode!
  • Den kann man distributionsunabhängig installieren und, wenn die Entwickler nicht totale Stümper waren, auch unter nicht-linuxbasierten Betriebsumgebungen, sei es BSD oder sogar Windows.

- JA, es ist toll, daß es unter Linuxdistros (und anderswo) vorkonfigurierte Repositories gibt, wo man nix mehr machen muß, nicht mal um Abhängigkeiten kümmern.
--- AAABER man macht sich damit genauso abhängig, zwängt sich damit genauso in einen Käfig wie unter dem verhaßten Windows/OSX/xyz.

--- Frei sein heißt Quellcode. Den gibt es dank Open Source Initiative (OSI)kompatiblen Lizenzen, mehr oder weniger überall, insbesondere, aber natürlich nicht beschränkt auf die GPL, überall. Insbesondere direkt beim Entwickler.

Es gibt nicht den geringsten Grund für hundert Zwischenhändler. Einfach bei, sagen wir, kde.org vorbeigucken und KDE installieren.
 
  • Gefällt mir
Reaktionen: hats
Für Windows existiert im Übrigen ein System welches man bedingt mit Linuxrepos vergleichen kann: chocolatey.
https://chocolatey.org/
 
  • Gefällt mir
Reaktionen: new Account()
Einige Anwendungsverwaltungen bieten in einer eigenen Kategorie Zugriff auf Flatpaks, die auf Flathub gehostet sind:
  • Linux Mint Anwendungsverwaltung
  • Linux MX-19 MX Paket-Installer
 
  • Gefällt mir
Reaktionen: Old Knitterhemd
Der erste nicht von mir erstellte Guide zur Reihe - Sehr schön, danke für deine Mühe, wird im Meta-Guide verlinkt!
Edit:
Für Interessierte: Falls ihr Interesse habt, selber etwas zum Thema Linux auf dem Desktop zu schreiben, findet ihr Richtlinien & Vorlagen hier.
 
Zuletzt bearbeitet:
garfield121 schrieb:
Einige Anwendungsverwaltungen bieten in einer eigenen Kategorie Zugriff auf Flatpaks, die auf Flathub gehostet sind:
  • Linux Mint Anwendungsverwaltung
  • Linux MX-19 MX Paket-Installer
Da hatte ich noch dran geschrieben, ist jetzt auch mit aufgeführt welche distros schon flatpaks an board haben.
 
RalphS schrieb:
Wir reden hier von Open Source, richtig?
Nö, nicht unbedingt.
Wir reden von Linux Distributionen und wie diese Software verteilen und bereitstellen, den Begriff Open Source habe ich kein einziges Mal erwähnt.

Ich erkläre sogar Wege um an Closed Source Software zu kommen.

RalphS schrieb:
Es gibt nicht den geringsten Grund für hundert Zwischenhändler. Einfach bei, sagen wir, kde.org vorbeigucken und KDE installieren.

Mir fallen einige Gründe ein...
Ich habe besseres zu tuen, als jedes Stück Quellcode meines Betriebssystems selber anzufassen.
Updates und Sicherheitsaktualisierungen werden zeitnah bereitgestellt, ohne dass ich mich zu allen Aspekten meines Betriebssystems auf dem Laufenden halten müsste.
Anpassungen, Vorkonfigurationen, Zusatzpakete werden von den Distros bereitgestellt und weiter entwickelt.

Viele dieser Änderungen landen irgendwann upstream im Quellcode und können auf anderen Distros ebenso genutzt werden.


Ich weiß zwar was du aussagen willst, sehe aber den Zusammenhang nicht?!
Nur weil es Quellcode frei zugänglich gibt, heißt das doch nicht, dass ich mir diesen nur von da hole.

Der Sinn von Open Source, ist freie Software.
Freie Software bedeutet nicht kostenlose Software - freie Software heißt ich bin frei, was Benutzung und Änderung dieser angeht.

Das heißt auch, ich packe eine angepasste Version in mein Repository für meine Linux Distribution und mache sie so vielen tausenden anderen Usern zugänglich, die nicht erst Source Code kompilieren wollen/können.
 
Snap und Flatpak laufen in einer Sandbox und sollen so vom restlichen System isoliert laufen.

Laut hier(Sicherheitskonzepte von Flatpak und Snap unter der Lupe (Seite 3)), benötigt Snap administrative Rechte, wohingegen Flatpak mit Benutzerrechten laufen soll.
Noch ein weiterer Link(linuxnews.de) der Ubuntus Snap erklärt.
 
  • Gefällt mir
Reaktionen: DiedMatrix
  • Gefällt mir
Reaktionen: Photon
Ah, dann wurde es offenbar wieder aus der Standardinstallation entfernt bzw. deaktiviert. Find ich gut, ist ja nicht jedermanns Sache mehrere Paketmanagement-Systeme in Benutzung zu haben, wo dann teilweise dasselbe Programm mehrfach installiert ist. Hab da schon so Screenshots im Manjaro-Forum, wo jemand überrascht war, warum auf einmal drei Gimp-Starter im Menü sitzen.
 
RalphS schrieb:
Danke für den ganzen Aufwand... aber eines möchte ich doch noch loswerden. Sorry im Voraus. 😊

  • Wir reden hier von Open Source, richtig?
  • Da gibt es GAR KEINE Repositories. Diese sind ein Entgegenkommen der Distributoren.
  • Unter Open Source gibt es, man ahnt es... Quellcode
Die meisten OpenSource Projekte liefern auch Releases und nicht nur Quelltext. Allein beim Programmieren fallen ja sowieso immer wieder Kompilate heraus und die Abhänigkeiten muss man im Buildprozess ebenso verwalten, da kann man auch gleich Pakete schnüren. Entsprechen fallen bei vielen Projekten auch fertige Pakete raus.
 
Tun sie, ja. Als Entgegenkommen.
Binaries, die gegen glibc gelinkt sind, sind schon by design nonportable- egal ob andere Version oder nonGnu libc.
Dasselbe für viele Abhängigkeiten, und sei es nur libintl.so.6 vs .7; das kann man nachbiegen, aber man muß es. Wenn icu ins Spiel kommt, wird es richtig interessant.

Quelltext kann man, wenn er ordentlich designed ist, überall kompilieren, Versionen von Abhängigkeiten verlieren an Bedeutung, der verwendete Compiler und die spezifische Distribution/ OE ebenfalls.

Obendrauf kommen Alternativen. OpenSSL nicht genehm? Macht nichts, kompilieren wir gegen eine Alternative. Mir paßt ReadLine nicht weil gpl? Nehm ich halt libedit. Oder ich kann damit eh nix anfangen/brauch die Funktionalität nicht, na dann laß ich die eine Abhängigkeit weg.

binaries geben mir keinerlei Freiheiten. Da kann ich auch closedsource nehmen.
 
ELF Linux
EXE/ PE Windows

Es ist vllt. möglich zu erwähnen das unter linux die ausführbaren Dateien keine Endung haben und ein anderes Format besitzen.
 
Guter Guide! Ich würde noch das Thema "Paketkonflikte" ansprechen ... vielleicht so:

Bei Einbindung von mehreren Paketquellen, die überschneidend gleiche Pakete in unterschiedlichen Versionen anbieten, können eventuell entstehende Konflikte (automatisch) durch Vergabe bzw. Änderung der Prioritäten im Paketmanager (z. B. Apt-Pinning) aufgelöst werden.
 
Zurück
Oben