Inhaltsverzeichnis

Snap vs. deb: Unterschiede und Verwendung

Linux-Software kann auf verschiedene Arten installiert werden. Die beiden wichtigsten Paketformate unter Ubuntu sind deb-Pakete (klassisch) und Snap-Pakete (modern). Diese Seite erklärt die Unterschiede, Vor- und Nachteile sowie die richtige Verwendung.

Voraussetzungen

Übersicht

Merkmal deb-Pakete Snap-Pakete
Format .deb (Debian Package) .snap (Snapcraft)
Tool apt, dpkg snap
Abhängigkeiten System-Bibliotheken Eingebaut (containerisiert)
Größe Klein Größer (enthält Abhängigkeiten)
Updates System-Updates Automatisch (4x täglich)
Isolation Keine Sandboxing (AppArmor/Seccomp)
Speicherort /usr, /etc, /var /snap
Kompatibilität Nur Debian-basiert Distro-unabhängig

deb-Pakete (APT/DPKG)

Was sind deb-Pakete?

deb ist das traditionelle Paketformat für Debian und Ubuntu. Pakete werden zentral verwaltet und nutzen System-Bibliotheken gemeinsam.

Vorteile

Nachteile

Installation und Verwaltung

# Paket suchen
apt search firefox
 
# Paket-Informationen anzeigen
apt show firefox
 
# Paket installieren
sudo apt install firefox
 
# Paket aktualisieren
sudo apt update
sudo apt upgrade firefox
 
# Paket entfernen
sudo apt remove firefox
 
# Paket + Konfiguration entfernen
sudo apt purge firefox
 
# Installierte Pakete auflisten
dpkg -l | grep firefox
 
# Paketinhalt anzeigen
dpkg -L firefox

Repositories

# Repository-Quellen anzeigen
cat /etc/apt/sources.list
ls /etc/apt/sources.list.d/
 
# PPA hinzufügen (Personal Package Archive)
sudo add-apt-repository ppa:mozillateam/ppa
sudo apt update
 
# Repository entfernen
sudo add-apt-repository --remove ppa:mozillateam/ppa

Snap-Pakete

Was sind Snap-Pakete?

Snap ist ein modernes, containerisiertes Paketformat von Canonical. Jedes Snap enthält alle benötigten Abhängigkeiten und läuft in einer isolierten Umgebung.

Vorteile

Nachteile

Installation und Verwaltung

# Snap-System prüfen
snap version
 
# Paket suchen
snap find firefox
 
# Paket-Informationen anzeigen
snap info firefox
 
# Paket installieren
sudo snap install firefox
 
# Paket aus bestimmtem Channel
sudo snap install firefox --channel=beta
sudo snap install firefox --edge
 
# Paket aktualisieren
sudo snap refresh firefox
 
# Alle Snaps aktualisieren
sudo snap refresh
 
# Paket entfernen
sudo snap remove firefox
 
# Installierte Snaps auflisten
snap list
 
# Snap-Verbindungen anzeigen
snap connections firefox

Confinement und Permissions

# Confinement-Level anzeigen
snap info firefox | grep confinement
 
# Verbindungen (Interfaces) anzeigen
snap connections firefox
 
# Interface verbinden
sudo snap connect firefox:home
 
# Interface trennen
sudo snap disconnect firefox:home
 
# Verfügbare Interfaces
snap interface

Confinement-Levels:

Direkter Vergleich

Beispiel: Firefox

# Als deb-Paket
sudo apt install firefox
# Größe: ~50 MB
# Start: Schnell
# Integration: Perfekt
# Updates: Mit System-Updates
 
# Als Snap-Paket
sudo snap install firefox
# Größe: ~250 MB
# Start: Langsamer
# Integration: Eingeschränkt
# Updates: Automatisch, immer aktuell

Speichernutzung

# deb-Pakete
dpkg -L firefox | xargs du -ch | tail -1
 
# Snap-Pakete
du -sh /snap/firefox
 
# Snap-Revisionen (alte Versionen)
snap list --all firefox

Wann was verwenden?

Verwende deb-Pakete für:

Verwende Snap-Pakete für:

Flatpak - Die Alternative

Neben deb und Snap gibt es noch Flatpak als drittes Format:

# Flatpak installieren
sudo apt install flatpak
 
# Flathub hinzufügen
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
 
# App installieren
flatpak install flathub org.mozilla.firefox
 
# Apps auflisten
flatpak list
 
# App starten
flatpak run org.mozilla.firefox
Merkmal Snap Flatpak
Entwickler Canonical (Ubuntu) Community
Store Snap Store (proprietär) Flathub (offen)
Verbreitung Ubuntu-fokussiert Distro-neutral
Sandboxing AppArmor/Seccomp Bubblewrap

Praktische Beispiele

System aufräumen

# Nicht benötigte deb-Pakete entfernen
sudo apt autoremove
sudo apt autoclean
 
# Alte Snap-Versionen entfernen
sudo snap set system refresh.retain=2
# Manuell alte Revisionen löschen
snap list --all | awk '/disabled/{print $1, $3}' | \
    while read snapname revision; do
        sudo snap remove "$snapname" --revision="$revision"
    done

Beide Versionen parallel

# deb-Version installiert als /usr/bin/firefox
sudo apt install firefox
 
# Snap-Version installiert als /snap/bin/firefox
sudo snap install firefox
 
# Welche Version wird verwendet?
which firefox
 
# Spezifische Version starten
/usr/bin/firefox  # deb
/snap/bin/firefox # snap
snap run firefox  # snap

Snap-Alternativen bevorzugen

# Ubuntu bevorzugt manchmal Snaps
# APT umleiten auf echtes deb
sudo apt install firefox
 
# Snap-Präferenz deaktivieren
sudo apt remove --purge snapd  # Radikal!
 
# Oder PPA verwenden
sudo add-apt-repository ppa:mozillateam/ppa
sudo apt update
sudo apt install -t 'o=LP-PPA-mozillateam' firefox

Troubleshooting

Snap-Probleme

# Snap funktioniert nicht
sudo systemctl status snapd
sudo systemctl restart snapd
 
# Snap hängt beim Update
sudo killall snap
sudo snap refresh
 
# Zu viele alte Revisionen
sudo snap set system refresh.retain=2
 
# AppArmor-Probleme
sudo dmesg | grep DENIED
sudo aa-status

deb-Probleme

# Kaputte Pakete reparieren
sudo apt --fix-broken install
sudo dpkg --configure -a
 
# Paket-Cache neu aufbauen
sudo apt clean
sudo apt update
 
# Held-Status (Updates blockiert)
apt-mark showhold
sudo apt-mark unhold paketname

Performance-Vergleich

# Startzeit messen
time firefox --version  # deb
time snap run firefox --version  # snap
 
# Speichernutzung
ps aux | grep firefox
 
# Plattenbelegung
du -sh /usr/lib/firefox  # deb
du -sh /snap/firefox     # snap

Best Practices

Siehe auch