Paketmanagement unter Linux: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(16 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
<span id="automatische-verfahren"></span>
+
= Einleitung zu Paketmanagern in Linux =
 +
Paketmanager sind zentrale Werkzeuge in Linux-Systemen. Sie automatisieren das Installieren, Aktualisieren und Entfernen von Software und stellen sicher, dass alle Abhängigkeiten korrekt aufgelöst werden. Dadurch bleibt das System konsistent, sicher und leicht wartbar. 
 +
Ein Paket ist ein Archiv mit Software und Metadaten wie Name, Version, Beschreibung, Prüfsumme und Abhängigkeiten. Diese Informationen werden nach der Installation in einer lokalen Paketdatenbank gespeichert. 
 +
Paketmanager arbeiten eng mit Software-Repositories zusammen, die von den Distributionen gepflegt werden. Unterschiedliche Linux-Systeme verwenden unterschiedliche Paketmanager, die jeweils eigene Paketformate und Philosophien haben. Zu den wichtigsten gehören APT (Debian/Ubuntu), DNF (Fedora, RHEL, CentOS), Zypper (openSUSE), Pacman (Arch Linux) sowie distributionsübergreifende Systeme wie Snap und Flatpak.
 +
 
 +
= Aufbau eines Paketmanagement-Systems =
 +
Ein vollständiges Paketmanagement besteht aus drei Ebenen:
 +
* '''Backend:''' Führt die eigentlichen Installations- und Entfernungsprozesse aus (z. B. dpkg oder rpm).
 +
* '''Frontend:''' Bietet benutzerfreundliche Befehle und löst Abhängigkeiten automatisch auf (z. B. apt, dnf, zypper, pacman).
 +
* '''Repository-System:''' Liefert die Pakete aus geprüften und signierten Quellen.
 +
 
 +
= Beispiele für Frontend/Backend-Kombinationen =
 +
{| class="wikitable"
 +
! Distribution !! Frontend !! Backend !! Paketformat
 +
|-
 +
| Debian, Ubuntu || APT || dpkg || .deb
 +
|-
 +
| Fedora, RHEL, CentOS || DNF (früher YUM) || rpm || .rpm
 +
|-
 +
| openSUSE, SLES || Zypper || rpm || .rpm
 +
|-
 +
| Arch Linux || Pacman || Pacman || .pkg.tar.zst
 +
|}
 +
 
 +
= Vorteile von Paketmanagern =
 +
* '''Einfachheit und Automatisierung:''' Befehle wie `apt install` oder `dnf install` installieren Programme inklusive aller Abhängigkeiten automatisch.
 +
* '''Systemstabilität:''' Paketmanager stellen sicher, dass nur kompatible Software installiert wird.
 +
* '''Zentrale Verwaltung:''' Alle installierten Pakete werden in einer lokalen Datenbank verwaltet.
 +
* '''Automatische Sicherheitsupdates:''' Regelmäßige Synchronisation mit vertrauenswürdigen Repositories sorgt für aktuelle und sichere Software.
 +
 
 +
<pre>
 +
# Beispiele
 +
apt update
 +
apt install nginx
 +
 
 +
dnf install nginx
 +
 
 +
pacman -S nginx
 +
</pre>
 +
 
 +
= Sicherheitsaspekte =
 +
* '''Digitale Signaturen und Integritätsprüfung'''
 +
: Alle offiziellen Repositories verwenden GPG-Signaturen, um sicherzustellen, dass Pakete unverändert und authentisch sind.
 +
: Debian/Ubuntu (APT): Überprüfen GPG-Signaturen der Paketquellen und Pakete.
 +
: Fedora/RHEL (DNF): Alle RPMs sind digital signiert; unsignierte Pakete werden blockiert.
 +
: Arch Linux (Pacman): Signierte Pakete sind Pflicht; AUR-Pakete können manuell geprüft werden.
 +
 
 +
* '''Vertrauenswürdige Quellen'''
 +
: Offizielle Repositories werden von den Distributionen gepflegt und regelmäßig überprüft.
 +
: Debian/Ubuntu: Streng kontrollierte Repositories mit festen Release-Zyklen.
 +
: Fedora/RHEL: Zentral verwaltete RPM-Repositories mit Lifecycle-Support.
 +
: Arch Linux: Rolling-Release; Community-AUR mit Quellcodeprüfung vor der Installation.
 +
 
 
= Automatische Verfahren =
 
= Automatische Verfahren =
 +
* Üblicherweise wird Software in Linux mit Paketmanagern installiert.
 +
* Paketmanager greifen auf Online-Repositories zu.
 +
* Diese enthalten Listen mit Paketen, Beschreibungen und Abhängigkeiten.
 +
* Der Paketmanager weiß dadurch:
 +
** welche Dateien bei der Deinstallation entfernt werden sollen.
 +
** welche Pakete nicht mehr benötigt werden.
 +
* Die Paketlisten werden von den Maintainern gepflegt, um Versions- und Abhängigkeitskonflikte zu vermeiden.
  
* Üblich wird Software in Linux mit Paketmanagern installiert.
 
* Paketmanager greifen auf (Online-)Repositorien (Aufbewahrungsort, Behälter) zu.
 
* Sie beziehen dabei eine Auflistung der verfügbaren Software.
 
* Die Auflistung enthält eine Liste der Dateien, eine kurze Beschreibung, sowie Verweise auf die Abhängigkeiten des Pakets.
 
* Dadurch weiß der Paketmanager:
 
** welche Dateien bei der Deinstallation entfernt werden sollen
 
** welche Pakete nicht mehr benötigt werden
 
* Die Liste der Pakete wird von den Maintainern der Distribution verwaltet
 
* Dadurch wird die Stabilität des Systems gewährleistet (Version, Abhängigkeiten, Konfiguration, …)
 
 
<!----->
 
<span id="manuelles-verfahren-mit-paketmanager"></span>
 
 
= Manuelles Verfahren mit Paketmanager =
 
= Manuelles Verfahren mit Paketmanager =
 +
* Falls ein Paket noch nicht im Repository vorhanden ist, kann es manuell heruntergeladen werden.
 +
* Gängige Formate sind:
 +
** .deb für Debian-basierte Systeme
 +
** .rpm für Fedora-, CentOS- oder RHEL-Systeme
 +
* Solche Pakete können über das jeweilige Backend installiert und wieder entfernt werden.
 +
<pre>
 +
dpkg -i paketname.deb
 +
rpm -i paketname.rpm
 +
</pre>
  
* Falls ein Paket noch nicht mit ins Repositorium aufgenommen wurde, kann man versuchen das Paket von der offiziellen Webseite herunterzuladen
+
= Manuelles Verfahren ohne Paketmanager =
* Oft sind .deb (für Debian-basierte System), .rpm (Fedora und CentOS) oder die .tar Dateien verfügbar
+
* Einfache Software kann auch ohne Paketmanager installiert werden, z. B. einzelne Binärdateien oder Skripte.
* Über diesen Weg installierte Pakete können auch wieder sauber vom Paketmanager deinstalliert werden
+
* Übliche Speicherorte:
 +
** /usr/local/bin
 +
** ~/.local/bin
 +
* Diese Programme werden nicht in der Paketdatenbank erfasst und müssen manuell aktualisiert oder entfernt werden.
  
<!----->
+
= Paketmanager =
<span id="manuelles-verfahren-ohne-paketmanager"></span>
+
== Frontends ==
= Manuelles Verfahren ohne Paketmanager =
+
* [[apt]] – für Debian und Ubuntu
 +
* [[dnf]] – für Fedora, RHEL, CentOS
 +
* [[zypper]] – für openSUSE, SLES
 +
* [[pacman]] – für Arch Linux
 +
 
 +
== Backends ==
 +
* [[dpkg]] – Debian-Paketverwaltung
 +
* [[rpm]] – Red Hat-Paketverwaltung
  
* Wenn man Software installieren will, die aus einer einzigen Datei bestehen, kann man diese auch unter bestimmten Ordner selbst hinterlegen
+
= Weitere Systeme =
* übliche Verzeichnisse sind: /usr/local/bin, ~/.local/bin
+
* [[snap]] – Containerbasiertes Distributionsformat
* Es handelt sich meist um einfache Skripte oder Binaries ohne komplexe Abhängigkeiten, die aber nicht im Repository vorhanden sind
+
* [[flatpak]] – Distributionsübergreifende App-Isolation
* So installierte Software wird auch nicht vom Paketmanager erfasst
+
* [[apt-cache]] – Werkzeug zur Paketdatenbanksuche
  
<!----->
+
= Aufgaben =
<span id="paketmanager"></span>
+
* [[apt,dpkg,tar]]
= Paketmanager =
 
==Frontends==
 
* [[apt]]
 
* [[pacman]]
 
* [[dnf]]
 
==Backends==
 
* [[dpkg]]
 

Aktuelle Version vom 10. November 2025, 20:11 Uhr

Einleitung zu Paketmanagern in Linux

Paketmanager sind zentrale Werkzeuge in Linux-Systemen. Sie automatisieren das Installieren, Aktualisieren und Entfernen von Software und stellen sicher, dass alle Abhängigkeiten korrekt aufgelöst werden. Dadurch bleibt das System konsistent, sicher und leicht wartbar. Ein Paket ist ein Archiv mit Software und Metadaten wie Name, Version, Beschreibung, Prüfsumme und Abhängigkeiten. Diese Informationen werden nach der Installation in einer lokalen Paketdatenbank gespeichert. Paketmanager arbeiten eng mit Software-Repositories zusammen, die von den Distributionen gepflegt werden. Unterschiedliche Linux-Systeme verwenden unterschiedliche Paketmanager, die jeweils eigene Paketformate und Philosophien haben. Zu den wichtigsten gehören APT (Debian/Ubuntu), DNF (Fedora, RHEL, CentOS), Zypper (openSUSE), Pacman (Arch Linux) sowie distributionsübergreifende Systeme wie Snap und Flatpak.

Aufbau eines Paketmanagement-Systems

Ein vollständiges Paketmanagement besteht aus drei Ebenen:

  • Backend: Führt die eigentlichen Installations- und Entfernungsprozesse aus (z. B. dpkg oder rpm).
  • Frontend: Bietet benutzerfreundliche Befehle und löst Abhängigkeiten automatisch auf (z. B. apt, dnf, zypper, pacman).
  • Repository-System: Liefert die Pakete aus geprüften und signierten Quellen.

Beispiele für Frontend/Backend-Kombinationen

Distribution Frontend Backend Paketformat
Debian, Ubuntu APT dpkg .deb
Fedora, RHEL, CentOS DNF (früher YUM) rpm .rpm
openSUSE, SLES Zypper rpm .rpm
Arch Linux Pacman Pacman .pkg.tar.zst

Vorteile von Paketmanagern

  • Einfachheit und Automatisierung: Befehle wie `apt install` oder `dnf install` installieren Programme inklusive aller Abhängigkeiten automatisch.
  • Systemstabilität: Paketmanager stellen sicher, dass nur kompatible Software installiert wird.
  • Zentrale Verwaltung: Alle installierten Pakete werden in einer lokalen Datenbank verwaltet.
  • Automatische Sicherheitsupdates: Regelmäßige Synchronisation mit vertrauenswürdigen Repositories sorgt für aktuelle und sichere Software.
# Beispiele
apt update
apt install nginx

dnf install nginx

pacman -S nginx

Sicherheitsaspekte

  • Digitale Signaturen und Integritätsprüfung
Alle offiziellen Repositories verwenden GPG-Signaturen, um sicherzustellen, dass Pakete unverändert und authentisch sind.
Debian/Ubuntu (APT): Überprüfen GPG-Signaturen der Paketquellen und Pakete.
Fedora/RHEL (DNF): Alle RPMs sind digital signiert; unsignierte Pakete werden blockiert.
Arch Linux (Pacman): Signierte Pakete sind Pflicht; AUR-Pakete können manuell geprüft werden.
  • Vertrauenswürdige Quellen
Offizielle Repositories werden von den Distributionen gepflegt und regelmäßig überprüft.
Debian/Ubuntu: Streng kontrollierte Repositories mit festen Release-Zyklen.
Fedora/RHEL: Zentral verwaltete RPM-Repositories mit Lifecycle-Support.
Arch Linux: Rolling-Release; Community-AUR mit Quellcodeprüfung vor der Installation.

Automatische Verfahren

  • Üblicherweise wird Software in Linux mit Paketmanagern installiert.
  • Paketmanager greifen auf Online-Repositories zu.
  • Diese enthalten Listen mit Paketen, Beschreibungen und Abhängigkeiten.
  • Der Paketmanager weiß dadurch:
    • welche Dateien bei der Deinstallation entfernt werden sollen.
    • welche Pakete nicht mehr benötigt werden.
  • Die Paketlisten werden von den Maintainern gepflegt, um Versions- und Abhängigkeitskonflikte zu vermeiden.

Manuelles Verfahren mit Paketmanager

  • Falls ein Paket noch nicht im Repository vorhanden ist, kann es manuell heruntergeladen werden.
  • Gängige Formate sind:
    • .deb für Debian-basierte Systeme
    • .rpm für Fedora-, CentOS- oder RHEL-Systeme
  • Solche Pakete können über das jeweilige Backend installiert und wieder entfernt werden.
dpkg -i paketname.deb
rpm -i paketname.rpm

Manuelles Verfahren ohne Paketmanager

  • Einfache Software kann auch ohne Paketmanager installiert werden, z. B. einzelne Binärdateien oder Skripte.
  • Übliche Speicherorte:
    • /usr/local/bin
    • ~/.local/bin
  • Diese Programme werden nicht in der Paketdatenbank erfasst und müssen manuell aktualisiert oder entfernt werden.

Paketmanager

Frontends

  • apt – für Debian und Ubuntu
  • dnf – für Fedora, RHEL, CentOS
  • zypper – für openSUSE, SLES
  • pacman – für Arch Linux

Backends

  • dpkg – Debian-Paketverwaltung
  • rpm – Red Hat-Paketverwaltung

Weitere Systeme

  • snap – Containerbasiertes Distributionsformat
  • flatpak – Distributionsübergreifende App-Isolation
  • apt-cache – Werkzeug zur Paketdatenbanksuche

Aufgaben