Linux Systeme

Installation von Software

Hier beschäftigen wir uns mit den unterschiedlichen Möglichkeiten, wie wir nachträglich Software installieren, installierte Software aktualisieren und diese gegebenenfalls auch wieder deinstallieren können.

Paketmanager

Der gängigste und idealste Weg um Software auf Ihrem Linux System zu installieren ist die Verwendung des von der Distribution bereitgestellten Paketmanagers.
Über diesen können unterschiedliche Quellen für die Softwareinstallation konfiguriert, Software mit diversen Tools installiert, aktualisiert und entfernt werden.
Je nach Distribution werden unterschiedliche Paketmanager verwendet. Die gängigsten sind APT (Advanced Package Tool) für Debian basierte Distributionen wie Debian, Ubuntu, Mint usw., YUM (Yellowdog Updater, Modified) für CentOS, Red Hat, Oracle Linux oder Fedora sowie Zypper für openSUSE und SUSE Linux Enterprise.

Zusätzlich zu diesen Paketmanagern kommen häufig auch noch zusätzliche (weitgehend) Distributionsunabhängige Paketmanager wie Flatpak oder Snap vor, welche auf eigene Softwarerepositories zurückgreifen und mit den App-Stores von Android oder iOS vergleichbar sind.

APT

Wir werden uns hier näher mit der Paketverwaltung unter Debian und damit mit apt auseinandersetzen. Die vorgestellten Konzepte funktionieren jedoch auch ähnlich mit den anderen Paketmanagern.
Normale User können zwar nach neuer Software suchen, für die Konfiguration, Installation, Deinstallation und Updates sind jedoch erhöhte Berechtigungen notwendig. Melden Sie sich daher am Besten gleich als User root an.

apt [Optionen] Befehl ist die allgemeine Synthax für die Verwendung.

apt
apt 2.6.1 (amd64)
Aufruf: apt [Optionen] befehl

apt ist ein Paketmanager für die Befehlszeile und bietet Befehle für die
Suche und Verwaltung von Paketen sowie für die Abfrage von Informationen
zu diesen Paketen.
Es stellt die gleiche Funktionalität zur Verfügung wie die spezialisierten
APT-Werkzeuge apt-get und apt-cache, aber seine Optionen sind eher passend
für die interaktive Nutzung.

Meist verwendete Befehle:
list - Pakete basierend auf dem Paketnamen auflisten
search - Paketbeschreibungen durchsuchen
show - Paketdetails anzeigen
install - Pakete installieren
reinstall - Pakete erneut installieren
remove - Pakete entfernen
autoremove - alle nicht mehr verwendeten Pakete automatisch entfernen
update - Liste verfügbarer Pakete aktualisieren
upgrade - das System durch Installation/Aktualisierung der Pakete hochrüsten
full-upgrade - das System durch Entfernung/Installation/Aktualisierung der Pakete vollständig hochrüsten
edit-sources - die Datei für die Paketquellen bearbeiten
satisfy - Abhängigkeitszeichenketten erfüllen

Lesen Sie apt(8) bezüglich weiterer Informationen über die verfügbaren Befehle.
Konfigurationsoptionen und Syntax sind in apt.conf(5) detailliert beschrieben.
Informationen dazu, wie Quellen konfiguriert werden, finden Sie in sources.
list(5).
Paket- und Versionsauswahlen können über apt_preferences(5) festgelegt werden.
Details zu Sicherheitsbelangen sind in apt-secure(8) zu finden.

Pakete suchen

apt search SUCHBEGRIFF wird verwendet um nach Paketen zu suchen. Als Suchtext können auch so genannte reguläre Ausdrücke verwendet werden um die Treffer besser einzugrenzen.
Geben Sie folgenden Befehl ein:

apt search vim
Sie werden jetzt eine relativ lange Liste an möglichen Paketen angezeigt bekommen. Einige davon, haben auch den Suchbegriff vim weder in der Paketbezeichnung noch in der Kurzbeschreibung.
Der Grund liegt darin, dass es zu jedem Paket auch eine ausführlichere Beschreibung gibt, welche ebenfalls durchsucht wird. Diese kann mit apt show PAKETNAME angezeigt werden.
Nehmen wir als Beispiel das gefundene Paket youtube-dl. Weder im Namen noch in der Kurzen Beschreibung kommt der Suchbegriff vim vor.
Sehen Sie sich die Beschreibung zu youtube-dl folgendem Befehl an:
apt show youtube-dl
Wenn Sie den Begriff nicht gleich identifizieren können, filtern Sie die Ausgabe mit grep
apt show youtube-dl | grep vim
Nun sehen wir, dass dieses Paket deshalb aufgelistet wurde, da auch Vimeo als Download-Platform unterstützt wird.

Mit den folgenden Möglichkeiten finden wir ein passenderes Ergebnis:
  1. Regulärer Ausdruck
    apt search ^vim
    Das ^ sorgt dafür dass sich der Suchbegriff am Beginn der Zeile befinden muss. Also entweder muss der Name des Pakets oder die Beschreibung mit vim beginnen.
  2. Begrenzen der Suche auf den Namen
    apt search -n vim
    Die Option -n sorgt dafür dass der Suchbegriff im Namen enthalten sein muss. Als Suchbegriff können Sie immer noch einen regulären Ausdruck verwenden!
  3. Begrenzen der Suche auf die Beschreibung
    apt search -d vim
    Die Option -d sorgt dafür dass der Suchbegriff in der Beschreibung enthalten sein muss. Als Suchbegriff können Sie immer noch einen regulären Ausdruck verwenden!

Die Liste der verfügbaren Pakete kann mit dem folgenden Befehl ausgegeben werden
# Ausgabe aller Pakete
apt list
# Ausgabe aller installierten Pakete
apt list --installed
# Ausgabe aller Pakete, für die Aktualisierungen verfügbar sind
apt list --upgradable

Pakete installieren

Haben Sie den gewünschten Paketnamen identifiziert, können Sie das Paket mit apt install PAKETNAME installieren.
Installieren Sie das Paket lolcat, ein Gimmik zur bunten Ausgabe in der Konsole mit dem Befehl

apt install lolcat
Testen Sie die Installation in einer eigenen Shell als normaler User mit den Befehlen
lolcat /etc/passwd

fortune | cowsay | lolcat

Pakete entfernen

Sie können Pakete mit dem Befehl apt remove PAKETNAME wieder entfernen.
ACHTEN Sie dabei bitte unbedingt auf die Ausgabe. Es könnte sein, dass das Paket, welches Sie entfernen möchten für andere Pakete eine Voraussetzung ist!

apt remove lolcat

Bei der Installation von Paketen wird man auch benachrichtigt ob zusätzliche notwendige Pakete automatisch mitinstalliert werden. Es kann vorkommen dass diese irgendwann nicht mehr benötigt werden. Beim Installieren oder Deinstallieren von Paketen erhalten Sie dann einen entsprechenden Hinweis.
Solche Pakete können Sie entfernen mit
apt autoremove

Pakete aktualisieren

Software sollte natürlich immer so gut es geht aktuell sein. Ein großer Vorteil der Paketverwaltung unter Linux ist, dass sämtliche Software von den Distributoren gewartet und getestet werden.
Unter anderen Betriebssystemen wie Microsoft Windows ist es meist so, dass jedes Softwarepaket separat aktualisiert werden muss. Automatische Updatefunktionen über alle Pakete stehen hier nicht zur Verfügung.

Um "nachzusehen" ob es neue Software gibt kann die Repository-Datenbank aktualisiert werden:

apt update

Die Liste der Upgrade-Kandidaten kann mit folgendem Befehl angezeigt werden
apt list --upgradable

Anschließend kann das System aktualisiert werden
# upgrade aktualisiert bereits installierte Pakete, es werden
# keine neuen (benötigten) Pakete installiert
# und auch keine installierten entfernt
apt upgrade

# full-upgrade aktualisiert bereits installierte Pakete, es werden
# neue (benötigte) Pakete installiert
# und auch nicht mehr benötigte entfernt
apt full-upgrade

Paket ermitteln

Manchmal ist es notwendig herauszufinden, welches Paket eine bestimmte Datei verwaltet. Beispielsweise wenn eine Datei irrtümlich gelöscht oder verändert wurde.
Dazu kann unter anderem der Befehl apt-file verwendet werden.
Dieser wird jedoch per Default nicht installiert - sie müssen ihn nachinstallieren.

apt install apt-file

# apt-file arbeitet mit einem Cache - dieser muss zuerst aktualisiert werden
apt-file update
# Welches Paket hat die Datei /etc/crontab erzeugt?
apt-file search /etc/crontab
# Welche Dateien gehören zu dem Paket cron-daemon-common?
apt-file list cron-daemon-common

Aufgabe 1.1
  • Es gibt ein Programm namens cmatrix. Finden Sie heraus wie der genaue Paketname lautet. Bei Ihrer Suche soll nur im Paketnamen gesucht werden.
  • Installieren Sie das Paket
  • Welche Dateien wurden durch das installierte Paket mitinstalliert?
  • Führen Sie das Programm aus
  • Deinstallieren Sie das Programm wieder
Aufgabe 1.2
  • Installieren Sie das Paket needrestart. Dieses kann verwendet werden, um zu prüfen ob aufgrund von Updates das System, eine Sitzung oder ein Service neu gestartet werden sollte.
  • Aktualisieren Sie die Software-Repositories
  • Lassen Sie sich alle upgradefähigen Pakete anzeigen
  • Installieren sie alle verfügbaren Upgrades
  • Führen Sie needrestart aus
  • Starten Sie Ihr System neu, wenn von needrestart empfohlen
Aufgabe 1.3
  • Es gibt ein Programm mit dem automatisch Sicherheitsupdates installiert werden sobald diese verfügbar sind.
  • Finden Sie den Namen dieses Pakets heraus
  • Installieren Sie das Paket
  • Finden Sie mit apt-file und grep heraus, welche neuen Dateien durch das Paket im Verzeichnis /etc installiert wurden.
  • Installieren sie alle verfügbaren Upgrades
  • Führen Sie needrestart aus
  • Starten Sie Ihr System neu, wenn von needrestart empfohlen
Aufgabe 1.4
  • Installieren Sie die beiden Programm toilet und figlet
  • "Füttern" Sie jedes der Programme über eine Pipe | mit dem Befehl echo "Beam me up, Scotty!" | ...
  • Die Ausgabe des Programms, dessen Ergebnis Ihnen besser gefällt leiten Sie wiederum weiter in den Befehl lolcat
  • Das andere Programm löschen Sie wieder

Installation über ein Paket

Nicht jede verfügbare Software wird auch von den Distributoren in die eigenen Repositories aufgenommen. Wenn Sie so eine Software jedoch verwenden möchten, können Sie prüfen ob für Ihr System ein geeignetes Paket zum Download zur Verfügung steht.
Nehmen wir hier als Beispiel den Web-Browser Chrome von Google.
Suchen Sie im Firefox unter Linux nach chrome download. Auf der Seite von Google sollten Sie einen Download Button finden und bei der Auswahl können Sie anschließend zwischen DEB und RPM wählen. Für Debian verwenden wir .deb Dateien. .rpm Dateien werden von SuSE, Redhat usw. verwendet.
Die Datei sollte anschließend in Ihrem Download Verzeichnis sein.

Öffnen Sie nun ein Terminal und melden Sie sich als User root an. Wechseln Sie in das Download-Verzeichnis ihres normalen Users.
Der Befehl apt verwendet zur tatsächlichen Installation eigentlich einen anderen Befehl. Nämlich dpkg. Diesen verwenden wir nun um zuerst Informationen zum Paket anzusehen und weiters um das Paket zu installieren.
# Anzeige der Informationen zum Paket
dpkg --info google-chrome-stable_current_amd64.deb

# Anzeige der Dateien welche installiert werden
dpkg --contents google-chrome-stable_current_amd64.deb

# Installieren des Pakets
dpkg -i google-chrome-stable_current_amd64.deb

ACHTUNG! Achten Sie hier sehr genau darauf ob die Installation erfolgreich ist. Im konkreten Fall kann es durchaus sein, dass eine Abhängigkeit fehlt. Nämlich das Paket libu2f-udev. Ist dies der Fall müssen Sie dieses Paket ebenfalls installieren.
Aufgabe 2.1
  • Laden Sie mit dem Befehl wget das Paket demo-package.deb von der URL https://edu.epcom.cc/downloads/demo-package.deb herunter.
  • Sehen Sie sich die Paketinformationen an
  • Welche Dateien werde durch das Paket installiert?
  • Installieren Sie das Paket
  • Öffnen Sie das installierte PDF Dokument in einem PDF-Viewer.
Aufgabe 2.2
  • Installieren Sie Visual Studio Code von https://code.visualstudio.com nach dem selben Schema wie oben.

Distributionsunabhängige Installationen

Wie oben kurz erwähnt gibt es auch die Möglichkeit andere Installationsquellen und Methoden zu verwenden. Beachten Sie jedoch dass sie damit nicht mehr die Möglichkeit der zentralen Verwaltzung (über z.B. apt) haben.
Als Beispiel verwenden Sie Flatpak. Wie Sie Flatpak installieren und für die erste Verwendung einrichten können sehen Sie unter https://flatpak.org/setup/Debian
Aufgabe 3.1
  • Installieren und Konfigurieren Sie Flatpak wie im Link oben beschrieben
  • Über die Gnome App "Software" sollten Sie nun auch Zugriff auf die Apps in https://flathub.org haben.
  • Stöbern Sie etwas auf Flathub.
  • Installieren sie mindestens 2 Flatpaks

Installation aus dem Quell-Code

Selbstverständlich ist es unter Linux auch möglich, die Pakete aus dem Quellcode selbst zu compilieren und zu installieren. Dies bietet zwar die größte Flexibilität, hat jedoch auch viele Nachteile. Sie müssen dann selbst jedes mal, wenn ein Update erscheint (zumindest wenn dieses Sicherheitsrisiken bereinigt) das Paket selbst auch wieder aktualisieren.
In manchen Fällen ist dies jedoch die einzige Möglichkeit.

In den meisten Fällen läuft die Installation nach dem gleichem Schema ab
  1. Download des Archivs
  2. Extrahieren des Archivs
  3. Automatische Konfiguration starten
  4. Übersetzung starten (compile)
  5. Programm installieren
Als Beispiel sei hier ein kleines Tic-Tac-Toe Spiel für die Console die Basis.

  • Laden Sie das Archiv von https://edu.epcom.cc/downloads/tic-tac-toe.tar.gz herunter.
  • Wechseln Sie in einem Terminal mit ihrem normalen User in den Download Ordner
  • Extrahieren Sie das Archiv mit
    tar -zxvf tic-tac-toe.tar.gz
    und wechseln Sie anschließend in das neue Verzeichnis tic-tac-toe
  • Führen Sie das Konfigurationsscript ./configure aus
  • Führen Sie die Kompilierung mit dem Befehl make durch
  • Installieren Sie das Programm mit make install
  • Starten Sie das Programm mit tic-tac-toe
Aufgabe 4.1
  • Laden Sie das C-Programm https://edu.epcom.cc/downloads/rock-paper-scissor.tar.gz herunter.
  • Installieren Sie das Programm mit den selben Schritten wie oben beschrieben.
  • Achten Sie auf die Ausgaben. Warnungen können eventuell ignoriert werden, Fehler führen jedoch zu unbrauchbarer Software