Immer, wenn ich jemanden mit einem Debian-System bekannt mache, kommt die Frage: "Wie kann ich denn hier Software installieren?" Er sucht den Knopf, der setup heißt und hofft, dass ein Programm ausgeführt wird, was sein gesamtes System verändert.
Der Mensch kauft sich ein Auto für teures Geld. Er bezahlt ständig eine Versicherung und eine Steuer dafür. Eine halbe Stunde fährt er am Tag damit. Die restlichen 23,5 h steht es herum, und er bezahlt dafür eine Gebühr. Manche bauen dem Auto sogar eine Garage.
Was sagen die Außerirdischen? "Die Bewohner der Erde heißen Autos. Ihre Sklaven haben 2 Beine, gehen aufrecht und müssen für die Autos arbeiten und sie pflegen."
Wenn es um Software geht, sieht es nicht anders aus. Es kann nicht genug sein. Oft werden sogar illegale Wege begangen, um an Software zu gelangen.
Kay öffnet ein Terminal und drückt 2 mal die TAB-Taste. Nun sieht er, wieviele Programme ungefähr er bereits nutzen kann. Und wieviele nutzt er wirklich?
Dem Kay wird hier kein Vorwurf gemacht. Sein Drucker und sein WLan geht nicht. Das ist ein guter Grund, warum Kay wieder zu seinem alten System wechseln könnte. Ihr wollt auch Software, sonst würdet Ihr dieser Seite nicht lesen.
Weiter mit dem Mensch. Irgendwann ist der Mensch der Meinung, dass sein Computer langsam geworden ist. Das liegt an der ganzen Software. Er fängt an, die Software, die er mühevoll und zeitaufwendig erworben und installiert hat, wieder zu deinstallieren. Die Schlauen unter den Menschen machen vorher noch eine Datensicherung. Fragmente dieser ehemaligen Software liegen auf den Speichermedien herum und laufen sogar noch. Aber der Rechner ist jetzt wieder fix. Wollen wir das?
Grundlegend sei für Einsteiger in Debian dazu gesagt: Die Anzahl an installierter Software hat nichts mit der Performance des Rechners zu tun. Speicherplatz wird benötigt. Es können weitere Dienste (services) hinzukommen, die meist so sparsam programmiert sind, das man es nicht an der Performance merkt. Einige Programme legen eine Unmenge an temporären Daten ab. Das kann das System ausbremsen, man merkt es, wenn die Festplatte ständig umher rödelt. Hier hilft ein Löschen dieser temporären Daten und eine vernünftige Konfiguration entsprechender Programme.
Lizenzen
Hier werden nur ein paar Worte für Privatanwender gesagt. Wer Debian gewerblich nutzen möchte, muss sich durch die Lizenzen quälen. Jede Lizenz wird veröffentlicht und ist im Internet leicht zu finden. Es gibt sogar eine Bier-Lizenz.
Jede Software wurde von jemanden programmiert, getestet und optimiert. Dafür hat dieser jemand viel Zeit und oft auch Geld eingesetzt, egal, ob privat oder gewerblich. Somit hat diese Software einen Wert. Ein Stück Seife kann man kaufen und anfassen. Software kann man auch kaufen aber nicht anfassen, sie ist virtuell. Trotzdem hat die Software einen Wert. Welchen Wert sie hat und wie sie eingesetzt werden darf, wird mittels Lizenzen geregelt. Man kann schlecht ein Preisschild auf etwas kleben, was man nicht anfassen kann.
Als Linus Torvald sein programmiertes Linux frei gab, hat er in der entsprechenden Lizenz festgelegt, dass jeder Linux kostenfrei nutzen und sich anpassen darf. Ein großartiger Mensch.
Auf Deutsch heißt das: Es darf nur für die Erstellung eines Speichermediums mit Linux Geld verlangt werden. Installiert ein Experte Linux für jemanden, darf er nur die benötigte Zeit dazu berechnen. Wenn Ihr jemanden seht, der ein Linux-System auf einer CD oder im Internet für 100€ anbietet, erstattet Ihr bitte eine Anzeige gegen diese Person. Hier wurde diese Lizenz nicht eingehalten. Wir wollen doch, dass es so bleibt.
Debian ist eine Art von Linux. Damit unterliegt das Grundsystem der Lizenz von Linus Torvald. Debian bietet weitere Software an, die einer anderen Lizenz unterliegen können. Für den Privatanwender sei kurz gesagt: Ihr dürft kostenfrei alles von Debian für Euch selbst nutzen.
Softwarepackete für Debian
Software für Debian-Systeme wird in sogenannten Softwarepacketen bereitgestellt. Das sind Dateien, deren Name mit .deb enden. Diese Dateien enthalten komprimierte Archive von entsprechenden Daten.
Um von solchen Dateien Software installieren zu können, gibt es das Programm dpkg.
Allerdings war das noch nicht alles. Viele Packete bilden Abhängigkeiten zu anderen Packeten, d.h. Software aus diesem Packet kann nicht laufen, weil andere Software fehlt.
Der Hintergrund dazu: Man versucht die Datenmenge gering zu halten. Stellt Euch mal vor, Ihr habt 25 Programme, bei denen Ihr im Menü "Datei öffnen" auswählt und das entsprechende Fenster aufgeht. Würde sich jedes Programm selbst darum kümmern müssen, hättet Ihr ein Stück Software 25 mal auf dem Rechner gespeichert, obwohl immer wieder das gleiche ausgeführt wird. Ähnliche Beispiele sind SSL-Verschlüsselungen, Audio- und Video-Codecs uvm. Man versucht Programmabschnitte und Bibliotheken zusammenzufassen.
Und da geht das Chaos los. Man muss sich informieren, von welchen Packeten dieses Softwarepacket abhängig sind. Welche Abhängigkeiten haben diese anderen Packete? Wir müssen alle Packete herunter laden und in der richtigen Reihenfolge installieren. Und welche Packete sind schon installiert? Kay möchte doch nur WLan und einen funktionierenden Drucker.
Software von Debian suchen, installieren, deinstallieren
Das mächtige Programm apt
Debian stellt zur Zeit über 59000 Softwarepackete bereit. Um diese Packete nutzen und verwalten zu können, stellt Debian ein mächtiges Tool bereit, das Programm apt.
apt ist ein neueres Programm, was die noch funktionierenden Programme wie zum Beispiel apt-get, apt-cache, apt-file und weitere zusammenfasst.
Mittels apt kann man Software installieren, deinstallieren, suchen, aktualisieren und vieles mehr. apt kümmert selbst sich um Abhängigkeiten der Packete untereinander. Was apt ungefähr alles so kann und wie man es nutzt, erfährt man mit der Anweisung
man apt
anzeigen lassen, welches die Handbuchseite von apt ausgibt.
Damit apt weiß, wo es Packete herunterladen kann und ob Aktualisierungen verfügbar sind, benötigt es Datenquellen, wo es nach solchen Daten nachsehen und herunterladen kann. Anzeigen kann man diese Quellen mit:
cat /etc/apt/sources.list
Alle Zeilen, die mit # beginnen, sind Kommentare und werden nicht berücksichtigt. Manche manuell installierte Programme, die nicht von Debian sind, legen ihre eigene Datenquelle in Dateien im Verzeichnis /etc/apt/sources.list.d ab.
Software suchen und installieren
Kay hat früher gerne das Spiel "Lemmings" gespielt. Vielleicht gibt es eine ähnliche freie Software von Debian für dieses Spiel. Kay möchte nun nach Alternativen suchen. Als erstes aktualisiert er Informationen aus den Datenquellen.
Um Software zu installieren, aktualisieren oder zu deinstallieren, benötigt Ihr Root-Rechte. Es müssen Systemdateien verändert werden.
sudo apt update
Die Angaben von den Quellen wurden aktualisiert. Nun möchte Kay nach diesem Spiel suchen.
apt search lemmings
Da Kay mit diesem Befehl nichts am System verändert, braucht er kein sudo.
In der Ausgabe sieht Kay, dass es eine ähnliche freie Software gibt, das Packet pingus. Er entschließt sich, dieses Packet zu installieren, kennt aber die Abhängigkeiten zu anderen Packeten nicht. Er überlässt apt, sich um alles zu kümmern.
sudo apt install pingus
apt erkennt, dass weitere Packete aufgrund Abhängigkeiten notwendig sind und wird diese mit installieren. Oft werden vorgeschlagene Packete angezeigt, die aber nicht installiert werden. apt fragt nun, ob Kay einverstanden ist, was Kay mit ENTER bestätigt.
Nun werden die Packete heruntergeladen. Anschließend werden diese mittels Checksummen verifiziert. Sind die Packete in Ordnung, werden die Archive in diesen entpackt und entsprechende Dateien in den entsprechenden Verzeichnissen installiert.
Nun kann Kay "pingus" im Terminal eingeben und das Spiel spielen. Er kann es auch aus seinem Startmenü aufrufen.
Bei einer Aktualisierung, wie auf voriger Seite beschrieben, werden so installierte Software mit aktualisiert, falls eine Aktualisierung vorhanden ist.
Software deinstallieren
Ein Deinstallieren nicht benötigter Software hat nicht mit Performance des Rechners zu tun. Es wird lediglich Speicherplatz freigegeben.
Irgendwann hat Kay die Nase voll von den Pinguinen und möchte das Spiel loswerden. Dazu hat er zwei Möglichkeiten:
sudo apt remove pingus
oder
sudo apt purge pingus
Nutzt man remove, bleiben Konfigurationen des Programms erhalten. Das ist sinnvoll, wenn man es vielleicht irgendwann wieder installieren möchte. Bei purge werden die Konfigurationsdateien auch gelöscht.
Kay hat während der Deinstallation aufgepasst und gesehen, dass nur das Packet pingus deinstalliert wurde. Beim Installieren waren es aber mehr Packete aufgrund der Abhängigkeiten. Um die nicht benötigten Packete auch loszuwerden, nutzt er den Befehl:
sudo apt autoremove
Es werden alle Packete aufgelistet, die das System nicht mehr braucht. Hier sollte Kay aufmerksam lesen, ob er wirklich diese Packete loswerden will. Nach Bestätigung werden alle Packete entfernt, wo das System der Meinung ist, dass es diese nicht mehr braucht.
Nicht voll freie Software von Debian
Viele Hardwarehersteller veröffentlichen nicht die Schnittstellen und Treiber zu Ihrer Hardware. Um entsprechende Hardware nutzen zu können, programmieren Angestellte oft in ihrer Freizeit einen Treiber für Linux. Sie dürfen nicht den Quellcode offen legen.
Um entsprechende Treiber von Debian installieren zu können, hat Debian 2 "Bereiche" erstellt, in denen solche Software heruntergeladen werden kann:
Contrib - Packete in diesem Bereich wurden von ihrem Urheber unter eine freien Lizenz gestellt, benötigen aber weitere Software, die nicht frei ist.
Non-free - Packete in diesem Bereich haben einige lästige Lizenzbedingungen, die die die Verwendung oder Weitergabe der Software einschränken
Sollte Eure komplette Hardware funktionieren, braucht Ihr diese Bereiche nicht. Bei Kay sieht das anders aus, sein WLan und sein Drucker gehen nicht. Deshalb möchte er diese 2 Bereiche zulassen. Er öffnet mit einem Editor mit Root-Rechten die Datei /etc/apt/sources.list und fügt diese beiden Worte am Ende jeder Zeile an. Als Beispiel wird aus
deb http://debian.inf.tu-dresden.de/debian buster main
deb http://debian.inf.tu-dresden.de/debian buster main contrib non-free
Diese Änderung führt Kay bei allen Zeilen in dieser Datei aus und speichert die Datei. Danach lest er die Packetquellen neu ein:
sudo apt update
Nun sucht Kay nach Firmwaresoftware für seinen Rechner mittels
apt search firmware | more apt search broadcom
Einige Packete aus diesen Bereichen, die oft benötigt werden:
firmware-misc-nonfree - Sammlung verschiedener Treiber für den Linux-Kernel
firmware-iwlwifi - Treiber für Intel-WLan-Hardware
firmware-b43-installer - Treiberinstallierer für Broadcom-WLan-Hardware
intel-microcode - Prozessor-Firmware für CPUs von Intel
Kay installiert sich, wie oben beschrieben, 3 Packete aus diesem Bereich und startet seinen Rechner neu, da Änderungen am Kernel vorgenommen wurden. Der Rechner ist fertig hochgefahren und in Kay seinem Gesicht baut sich ein leichtes Grinsen auf. Sein WLan geht.
Anmerkungen für Einsteiger
Folgende Artikel beschreiben, wie man Software von Fremdherstellern installieren könnte. Beim Anwenden dieser Artikel steckt manchmal der Wurm drin. Da sind Erfahrungen im Umgang in Debian ein Muss.
Ich empfehle, anfangs nur Software von Debian zu nutzen. Über 59000 Packete sollte erst mal reichen.
Wer aus einem anderen System zu Debian gewechselt ist, vermisst oft gewohnte Sachen. Für fast so ziemlich alles gibt es in Debian gelungene Alternativen.
Es macht anfangs mehr Sinn, sich mit Debian und dessen Software zu beschäftigen als stundenlang zu versuchen, irgend was anderes zum Laufen zu bringen.
Software von Fremdherstellern, die Debian-Packete bereit stellen
Software von Fremdherstellern kann das System gefährden! Ihr müsst selbst entscheiden, ob Ihr diesen Herstellern vertraut und mit den Konsequenzen leben.
Um Software von Fremdherstellern zu nutzen, müssen deren Lizenzbedingungen gelesen, anerkannt und eingehalten werden. Diese Software hat nichts mit Debian zu tun.
Fremdhersteller gibt eine Quelle frei
Einige Fremdhersteller programmieren Software für Linux und geben vielen Mitmenschen die Möglichkeit, diese Software zu testen, um Fehler festzustellen oder einfach nur zu veröffentlichen. Die Mitmenschen müssen auf diese Software zugreifen können. Deshalb wird auf den Internetseiten dieser Hersteller eine Quelle veröffentlicht, die, hier am Beispiel josm, etwa wie folgt aussieht:
deb https://josm.openstreetmap.de/apt alldist universe
Möchte man diese Quelle nutzen, fügt man sie mit Root-Rechten in der Datei /etc/apt/sources.list ein.
Meist ist es auch notwendig, einen Schlüssel (public key) in seinem System anzufügen. Wie man das erledigt, sollte ebenfalls auf diesen Internetseiten stehen, wie z.Bsp. bei josm:
Damit das funktioniert, muss das Packet wget installiert sein. Nun aktualisiert man die Packetquellen mit
sudo apt update
apt kann jetzt Software von dieser Quelle installieren, aktualisieren, suchen uvm. und kümmert sich um die Abhängigkeiten wie oben beschrieben.
Fremdhersteller stellt eine .deb-Datei bereit
Eine solche .deb-Datei ist ein Softwarepacket für Debian. Diese Datei kann man herunterladen und speichern. Ich gehe mal davon aus, dass diese Datei im Ordner ~/Downloads/ abgespeichert ist.
Es sei nochmal gesagt: Software von Fremdherstellern kann das System gefährden! Was bei der Installation eines solchen Packetes passiert, weiß nur der Fremdhersteller. Lest bitte alles, was der Hersteller dazu veröffentlicht.
Installieren kann man ein solches Packet mit:
cd ~/Downloads/ ls sudo dpkg -i PACKETNAME.deb
PACKETNAME.deb muss natürlich der wirkliche Name dieser Datei sein. Oft schlägt die Installation fehl, weil abhängige Packete fehlen. Da ist mühevolle Kleinarbeit gefragt.
So installierte Software wird nicht automatisch aktualisiert. Darum muss man sich selbst kümmern.
Software aus dem Quelltext
Um diesen Artikel anzuwenden, sind Erfahrungen im Umgang mit Debian notwendig.
Software, die quelloffen ist, wird oft im Quelltext bereitgestellt. Hierzu gibt es ganze Plattformen wie SVN und GitHub. Mittels solchen Plattformen haben mehrere Programmierer die Möglichkeit, gleichzeitig an einer Software zu arbeiten.
Im Quelltext bereitgestellte Software hat weitere Vorteile: Jeder kann hineinsehen, was hier los ist und wie das Programm funktioniert. Man kann sich die Software persönlich anpassen. So veröffentliche Software ist oft unabhängig vom Betriebssystem. Oft kann man solche Software ausprobieren, ohne dass sie systemweit installiert werden muss.
Nachteil solcher Software ist, dass man sie sich selbst bauen (kompelieren) muss. Hierzu sind meist weitere Packete in Debian notwendig. Was oft gebraucht wird, ist das Packet build-essential. Hierzu muss man die Wikis der Software(programmierer) durchgehen, um festzustellen, was man braucht.
Meist werden offene Software als gepackte Archive angeboten. Deshalb muss man diese Archive selbst mit entsprechenden Programmen entpacken und die Dateien daraus extrahieren.
Wie man solche Software kompeliert, sollte auch von den Programmierern erläutert sein. Es hängt davon ab, welche Programmiersprachen benutzt werden und wie die Programmierer das Kompelieren festgelegt haben.
Ein ungefähres Beispiel, wie man C- und C++-Software kompelieren könnte
cd inDasVerzeichnis ls
Gibt es dort eine Datei namens "configure", kann man diese ausführen:
./configure
Oft verlangt dieses Skript auch Parameter. Es stellt fest, was auf dem System vorhanden ist und legt eine Liste an, was beim Kompelieren zu tun ist. Ist es fehlerfrei durchgelaufen, sollte eine Datei Makefile vorhanden sein. Nun kann man ein Kompelieren versuchen:
make
Sollte das fehlerfrei durchlaufen, befindet sich anschließend irgendwo in den ganzen Dateien das ausführbare Programm. In der Regel startet man es mit:
cd dasProgramm ./dasProgramm
Schön, wenn es funktioniert. Aber nur ein Nutzer kann es starten, da sich das Programm im Heimatverzeichnis befindet. Haben die Programmierer es vorgesehen, dass das Programm systemweit installiert werden kann, sind etwa folgende Schritte notwendig:
cd .. # zurück in das Verzeichnis, wo sich die Datei Makefile befindet
make test # testen, ob eine Installation klappen könnte, Option test ist nicht immer vorhanden
sudo make install # systemweit installieren
Sollte das geklappt haben und sollten die Programmierer das Debian-System achten, müsste sich das Programm in /opt/ oder /usr/local/bin/ befinden.
Wie gesagt, das war nur ein Beispiel, wie das Kompelieren aussehen könnte. Andere Programmierer nutzen weitere Tools wie autoconf oder cmake. Wieder andere programmieren ein Skript (*.sh), welches die Installation ausführt. Oft müssen diese Skripte angepasst werden.
Software-Binaries
Manche Fremdsoftwarehersteller bieten Software in Form von Binaries an, das sind fertig kompelierten Programme, die man "Out-Of-Box" nutzen und ohne weitere Installationen starten kann.
Hierbei ist darauf zu achten, dass die Software für das entsprechende System und die entsprechende Architektur bereitgestellt wird. Ein 32-Bit-Programm läuft (eigentlich) nicht auf einem 64-Bit-System und umgekehrt schon gar nicht.
Verwendet niemals sudo, um solche Programme auszuführen. Man weiß nie, was so ein Programm wirklich macht.