Sendung mit der Maus
Das ist der erste Forums-Post vom Günther. Den Günther, den gibt's aber gar nicht, den haben wir uns ausgedacht genauso wie den Arch_Boi9000. Der Name klingt aber lustig.
Der Günther loggt sich in das Internet ein und guckt bei Lutris auf der Webseite wie der nette Man im Forum ihm das beschrieben hat und versteht nur Trainstation! Das war Englisch!
Deswegen kauft sich der Günther am nächsten Tag ein MacBook Air und merkt das er da auch nicht zocken kann und gar keine Hilfe bekommen. Doof gelaufen.
Das war Satire
Der Günther
(Ich laut AI mit fast 70)
Der Kern der Sache
Es geht hier nicht darum, sich über Stereotypen lustig zu machen. Es geht darum, dass es viele Menschen wie Günther gibt, die sich zum ersten Mal mit Linux auseinandersetzen. Nicht gerade selten ist der nächste Post: "Danke für die Hilfe, aber ich bin ein totaler Anfänger und weiß gar nicht, was ich machen soll."
Die Lösung besteht natürlich darin, alles mit der Maus zu markieren, in das Terminal einzufügen und dann mit ENTER zu bestätigen.
Das Problem hierbei ist, dass jemand, der keinen blassen Schimmer hat, was er da tut, eine endlos lange Befehlskette ausführen soll, die er von irgendjemandem im Netz vor die Nase gesetzt bekommen hat. "Das könnte ja auch ein Virus sein oder meinen PC kaputt machen."
Natürlich tut es das nicht, aber das Herunterladen einer EXE-Datei und die Installation mit einem Doppelklick sind schon etwas anderes.
Was mach' ich da eigentlich?
In diesem Artikel habe ich die Grundlagen von APT aufgezeigt, aber nicht beleuchtet, was das eigentlich ist. Das kommt jetzt.
[Anfänger][Bash-Fun]Update-Ketten
Fühlen Sie sich deswegen abgespannt und schlapp?
Keine Sorge, denn Doktor Tux hat das passende Mittel für Sie, um endlich wieder mit Energie und Freude Ihren PC-Sessel zu verlassen... falls Sie das jemals tun.
Spaß beiseite! Ich wurde wirklich durch das oben genannte Beispiel geschädigt und…
Wir alle wurden von Microsoft so erzogen: Um ein Programm zu installieren, gehen wir auf dessen Internetseite und laden eine Datei mit der Endung .EXE (oder manchmal .msi) herunter. Standardmäßig sind Dateiendungen in Windows ausgeblendet. Deswegen weiß meine Mutter auch nie, was ich von ihr will, wenn ich sage, du musst die EXE herunterladen. Mit einem Doppelklick starten wir die Installation über den Installationsassistenten. Man kann auswählen, wo die Datei installiert werden soll.
Unter Linux läuft das ganz anders. Mit dem Debian Advanced Package Manager hat sich eine viel bequemere Art und Weise entwickelt, Programme zu beziehen und zu installieren. Das Pendant zur EXE ist die DEB-Datei. Sehr vereinfacht ist das nur ein Archiv, in dem das Programm zusammen mit Dateien liegt, die aussagen, was das überhaupt für ein Programm ist, wo es hin soll und welche Bibliotheken es braucht, um zu funktionieren. Wenn wir 'apt install' ausführen, sucht Debian nicht auf der Webseite des Programm-Anbieters, sondern auf einem Spiegelserver, der vom Debian-Projekt gewartet wird. Ausnahmslos alle .deb-Dateien wurden auf Sicherheit und Funktionalität geprüft. Zu jetzigen Zeitpunkt liegen auf den Servern etwa 64.000 Dateien. Das ist eine riesige Menge an Programmen.
Ich sage 'Server' (plural), weil es nicht nur einen gibt. Ihr könnt, um Programme schneller herunterzuladen, auch auf Server in Deutschland zugreifen. Diese werden unter anderem von Universitäten bereitgestellt.
In unserem Beispiel wird der Spiele-Launcher Lutris installiert, oder besser gesagt, er soll installiert werden. Die ersten beiden Code-Zeilen weisen APT neben dem Debian-Server auch an, den Server vom Lutris-Projekt als Ressource einzubinden. Die .deb-Dateien von dort werden in den Index aufgenommen und sozusagen auch auf ihre Aktualität geprüft (apt update).
Warum ist das so?
Es gibt so viele Programme unter der Sonne, einige sind nützlich, andere wiederum unsinnig. Und dann gibt es Programme, die nützlich sind und sehr schnell aktualisiert werden müssen, damit sie benutzbar bleiben. Die Wartung von 64.000 Programmen ist eine gewaltige Aufgabe. Alle Linux-Tools der Welt zu pflegen ist unmöglich und oft auch nicht sinnvoll. Gerade neue Programme finden sich nicht immer sofort im Debian-Repository. Das liegt an der konservativen Ausrichtung von Debian, die auf Stabilität setzt.
Viele Entwickler hosten ihre Projekte daher selbst, zum Beispiel in eigenen Repositories oder auf GitHub. Bei Dateien, die von letzterem bezogen werden, sollte immer überprüft werden, ob sie tatsächlich vom echten Entwickler erstellt wurden und ob die Quelle vertrauenswürdig ist. Diese Programme werden auch nicht automatisch aktualisiert, da sie nicht mit einem Repository-Server verbunden sind. Daher muss manuelle aktualisieren.
Die haben da Regel?!
Wenn weltweit Menschen zusammenarbeiten, sind Konventionen erforderlich, um reibungslos miteinander zu agieren. Im Land von Debian ist eine solche Konvention die Namenskonvention für Pakete. Dies ist jedoch nicht so kompliziert, wie es auf den ersten Blick erscheint. Bei GitHub ist Lutris beispielsweise unter dem Namen 'lutris_0.5.14_all.deb' zum Download verfügbar. Der Schlüssel zum Verständnis liegt in der Struktur 'Paket_Version_Architektur.deb'. Die Architektur bezieht sich auf die Bauweise des Betriebssystems. 'all' bedeutet in diesem Fall, dass das Paket auf allen Architekturen installiert werden kann und die benötigten Bibliotheken oder Abhängigkeiten vorhanden sind. Dies ist wichtig, da Software für x86_64 nicht auf einem Raspberry Pi ausgeführt werden kann. In diesem Fall würde 'armhf' oder 'arm64' anstelle von 'all' stehen. Wenn 'all' nicht vorhanden ist, würde stattdessen 'amd64' stehen, was die Namenskonvention für Intel- und AMD-Prozessoren ist.
Betrachtet man erneut das Beispiel Lutris oder sogar Steam, fällt auf, dass bei einer Terminalinstallation auch die 'i386'-Architektur freigegeben wird. Diese Konvention stammt aus der Zeit der 32-Bit-Architektur. Es mag überraschend sein, aber einige Programme verwenden immer noch 32-Bit-Code. Ein Grund, warum es schwierig ist, Steam vollständig auf einem Raspberry Pi anzuzeigen, ist, dass das Programm in 64-Bit geschrieben ist, während ein Teil davon, beispielsweise der Mittelteil, in 32-Bit verfasst ist. Obwohl es Programme gibt, die die Übersetzung von ARM in x64/x86 ermöglichen, führt diese Mischung oft zu Problemen. Aber das ist nur am Rande erwähnt.
Die Befehlskette
echo "deb [signed-by=/etc/apt/keyrings/lutris.gpg] https://download.opensuse.org/repositories/home:/strycore/Debian_12/ ./" | sudo tee /etc/apt/sources.list.d/lutris.list > /dev/null
wget -q -O- https://download.opensuse.org/repositories/home:/strycore/Debian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/keyrings/lutris.gpg > /dev/null
sudo apt update
sudo apt install lutris
Die Befehlskette auseinander genommen
echo "deb [signed-by=/etc/apt/keyrings/lutris.gpg] https://download.opensuse.org/repositories/home:/strycore/Debian_12/ ./" | sudo tee /etc/apt/sources.list.d/lutris.list > /dev/null
- echo: Dieser Befehl gibt den nachfolgenden Text aus.
"deb [signed-by=/etc/apt/keyrings/lutris.gpg] https://download.opensuse.org/repositories/home:/strycore/Debian_12/ ./"
Ist der Text, der ausgegeben wird. Es handelt sich um eine Zeile für die /etc/apt/sources.list.d/lutris.list-Datei, die eine Paketquelle hinzufügt.
- |: Dieses Pipe-Symbol leitet die Ausgabe des echo-Befehls an den nächsten Befehl weiter.
Dieser Teil übernimmt die Ausgabe des vorherigen Befehls und schreibt sie in die Datei /etc/apt/sources.list.d/lutris.list. sudo wird verwendet, um die Berechtigungen für das Schreiben in diese Datei zu erhalten. > /dev/null leitet die Standardausgabe um, so dass keine Ausgabe auf dem Bildschirm angezeigt wird.
wget -q -O- https://download.opensuse.org/repositories/home:/strycore/Debian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/keyrings/lutris.gpg > /dev/null
- wget: Dieser Befehl wird verwendet, um eine Datei von einer URL herunterzuladen.
- -q: Dieser Parameter für wget bedeutet "quiet" und sorgt dafür, dass wget keine Fortschrittsinformationen auf dem Bildschirm anzeigt.
- -O-: Mit diesem Parameter wird die heruntergeladene Datei auf die Standardausgabe (stdout) umgeleitet, anstatt sie in einer Datei zu speichern.
-https://download.opensuse.org/repositories/h…_12/Release.key
Dies ist die URL zur GPG-Schlüssel-Datei des Lutris-Repositories.
- |: Dieses Pipe-Symbol leitet die Ausgabe von wget an den nächsten Befehl weiter.
- gpg --dearmor: Dieser Befehl entschlüsselt den heruntergeladenen GPG-Schlüssel und wandelt ihn in eine lesbarere Form um.
- sudo tee /etc/apt/keyrings/lutris.gpg > /dev/null: Dieser Teil schreibt den entschlüsselten GPG-Schlüssel in die Datei /etc/apt/keyrings/lutris.gpg und leitet die Ausgabe auf /dev/null um, um sie zu unterdrücken.
Noch einfacher
Wir haben Debian gesagt es soll
"deb [signed-by=/etc/apt/keyrings/lutris.gpg] https://download.opensuse.org/repositories/home:/strycore/Debian_12/ ./"
in einer Datei schrieben damit es weiß wo es sich Lutris für die Installation runterladen kann.
Und wir haben eine Datei erstellt, die diese Download-Resource als sicher für uns markiertlutris.gpg.
Damit unser Terminal uns nicht mit tausenden von Zeilen voll baller wurden die Informationen mit > /dev/null
ins Nichts geschickt.
Auf der Platte
Ist alles im Terminal erledigt sieht das ganze in unserer Verzeichnisstruktur so aus:
Guckt euch ruhig in /etc/apt/sources.list.d und /etc/apt/keyrings um. Man kann die Dateien mit einem Texteditor öffnen. Solange Ihr das nicht als Systemadministrator oder mit sudo/pkexec tut könnt ihr da gar nichts kaputt machen. Händisch sollte ein Anfänger hier sowieso nichts ändern.
Front-End
Zum Glück leben wir nicht mehr in der Steinzeit (den 80ern). Es gibt grafische Oberflächen, die auf Fenstern basieren. Relevant sind hier die Software-Center. Jede Distribution hat mindestens eines von gefühlt 100 installiert.
Der Gold-Standard für Debian ist Synaptic. Nicht schön aber sehr genau. Synaptic zeichnet sich besonders durch seine Benutzerfreundlichkeit aus. Man kann problemlos durch die Liste der verfügbaren Programme navigieren, nach Schlüsselwörtern suchen und Filter anwenden, um die gewünschte Software zu finden. Sobald man ein Programm auswählt, berücksichtigt Synaptic automatisch die erforderlichen Abhängigkeiten und stellt sicher, dass alles reibungslos funktioniert.
Ein weiterer Vorteil von Synaptic ist die Möglichkeit, Softwarequellen zu verwalten. Dadurch kann man auswählen, von welchen Servern man Software herunterladen möchte, was besonders hilfreich ist, wenn man auf spezielle Software oder Entwicklerquellen zugreifen möchte.
Installation
sudo apt install synaptic
Synaptic › Wiki › ubuntuusers.de
Das Thema ist riesig und bedarf eigentlich mehrerer Artikel, um es umfassend darzustellen. Einige Fragezeichen sollten in diesem Post jedoch beseitigt werden. Generell gilt: Ich möchte nicht belehren, sondern zur weiteren Information anregen.
Weiter lesen
Rheinwerk Computing :: Linux - index
Rheinwerk Computing :: Linux - 14 Grundlegende Verwaltungsaufgaben