- 1 Section
- 10 Lessons
- unbegrenzt
- Software Deployment10
- 1.1Was ist Software Deployment?
- 1.2Deployment-Strategien: Big Bang, Rolling, Blue-Green, Canary
- 1.3Software-Pakete: MSI, MSIX, DEB, RPM
- 1.4Softwareverteilung unter Windows: WSUS, Intune, PDQ
- 1.5Softwareverteilung unter Linux: apt, yum, Ansible
- 1.6Konfigurationsmanagement: Ansible Grundlagen
- 1.7Infrastructure as Code: Terraform Überblick
- 1.8Umgebungen: Entwicklung, Test, Staging, Produktion
- 1.9Rollback-Strategien
- 1.10Aufgaben Software Deployment
Softwareverteilung unter Linux: apt, yum, Ansible
Während Windows-Verteilung in L4 stark auf GUI-Tools wie WSUS oder Intune setzt, läuft es in der Linux-Welt komplett anders: Paketmanager auf der Kommandozeile. Eine zentrale Stärke von Linux ist das Repository-System – jede Distro hat einen Paketmanager der tausende Pakete aus offiziellen Servern installieren kann, mit automatischer Dependency-Auflösung.
Diese Lektion zeigt die wichtigsten Paketmanager: apt (Debian/Ubuntu), dnf/yum (Red Hat/Fedora) und zypper (OpenSUSE). Plus: wie konfiguriert man eigene Repositories, wie baut man eigene Pakete, und wo passt Ansible ins Bild?
1) Distributions-Familien und ihre Paketmanager
Linux-Distributionen sind nicht alle gleich – sie unterscheiden sich besonders in den Paketformaten und -tools. Hier die wichtigsten Familien:
2) apt: der Debian/Ubuntu-Paketmanager
apt (Advanced Package Tool) ist der Paketmanager der Debian-Familie. Bei einer frischen Ubuntu-Installation läuft die typische Software-Installation so ab:
apt update aktualisiert die Paketlisten (welche Pakete gibt's in welchen Versionen?). apt install nginx installiert. Das System löst automatisch alle Dependencies auf, fragt nach Bestätigung, und installiert. Mit -y wird die Frage übersprungen – wichtig für Skripte.3) Die wichtigsten apt-Befehle
Das Mindestrepertoire das du als FISI beherrschen solltest:
Wichtig zu wissen: apt update ≠ apt upgrade. Das eine aktualisiert die Liste, das andere die Pakete selbst. Häufiger Anfängerfehler.
4) dnf / yum: Red-Hat-Welt
Die Red-Hat-Familie nutzt RPM als Paketformat, und der Manager ist dnf (Dandified yum) auf modernen Systemen oder yum auf alten. Beide haben praktisch dieselbe Syntax – yum ist der Vorgänger:
dnf update aktualisiert alle Pakete (Achtung: anders als bei apt, wo „update" nur die Liste aktualisiert!). Diese Verwechslungsgefahr zwischen apt-update und dnf-update ist ein klassischer Stolperstein.5) zypper: OpenSUSE und SLES
OpenSUSE und SUSE Linux Enterprise nutzen zypper als Paketmanager. Auch RPM-basiert wie dnf, aber eigene Syntax. In deutschen Unternehmen ist SUSE traditionell verbreitet:
Zypper hat einige Besonderheiten: Patches als spezielle Kategorie (statt nur Pakete) und sehr starkes Repository-Management. Bei SLES (Enterprise) gibt es zusätzliche Werkzeuge wie SUSE Manager für zentrale Verwaltung.
6) Befehle im direkten Vergleich
Die typischen Aktionen über alle drei Paketmanager hinweg:
-y (apt/dnf) oder -n (zypper) verwenden.7) Repositories konfigurieren
Manchmal sind Pakete nicht in den Standard-Repos. Dann muss man externe Repositories einrichten. Beispiel: aktuelle Docker-Version unter Ubuntu installieren – die ist nicht in den Standard-Ubuntu-Repos, sondern bei Docker selbst.
/etc/apt/sources.list.d/ eintragen, apt update + install. Bei RHEL/Fedora ähnliches Schema mit /etc/yum.repos.d/. Mehr zu Repositories: jeder Linux-Server hat unzählige davon konfiguriert.8) Eigene .deb- oder .rpm-Pakete bauen
Manchmal musst du eigene Pakete erstellen – z.B. wenn du eigene Software ausrollst, die nicht im offiziellen Repo ist. Es gibt zwei Hauptansätze: klassisches Tooling (komplex) oder fpm (einfacher Wrapper).
./build/usr/local/bin/myappfpm -s dir -t deb -n myapp -v 1.0 --depends "libssl1.1" ./build/=/myapp_1.0_amd64.deb – installierbar mit sudo dpkg -i myapp_1.0_amd64.deb-t rpm statt -t deb. Praktisch für Multi-Distro-Releases.dpkg-deb oder rpmbuild hast du mehr Kontrolle, aber auch deutlich mehr Aufwand (eigene .spec-Files, debian/-Verzeichnisse, Build-Skripte). Für die meisten Fälle reicht fpm – gem install fpm und los geht's. Mehr zu Paketformaten in L3.9) Massen-Verteilung: Ansible für Linux
Während Windows mit WSUS/Intune/PDQ arbeitet, ist die Standardantwort für Linux: Ansible. Ein Ansible-Playbook kann hunderte Linux-Server gleichzeitig mit Paketen versorgen:
Die Ansible-Module apt, dnf, yum, zypper und package (distro-agnostisch) sind idempotent – mehrfach laufen lassen ist sicher. Die ausführliche Behandlung von Ansible mit Inventory, Roles, Templates und Handlers findest du in K55 L7 Ansible Playbooks. Hier nur kurz als Vorschau, weil's Teil der Software-Verteilung ist.
10) Unattended Upgrades
Ein wichtiger Mechanismus für Linux-Server: automatisches Sicherheitsupdate. Statt manuell jeden Server zu patchen, läuft im Hintergrund ein Dienst der Sicherheitsupdates automatisch installiert.
Bei Ubuntu/Debian heißt das unattended-upgrades. Konfiguration in /etc/apt/apt.conf.d/50unattended-upgrades festlegen welche Updates automatisch laufen (typisch: nur „-security"). Bei RHEL/Fedora gibt's dnf-automatic, ähnliches Konzept.
Trade-off: schnelle Sicherheits-Updates vs. Risiko unkontrollierter Änderungen. Best Practice: nur Security-Updates automatisch, Feature-Updates manuell und nach Test.
11) Universelle Paketformate: Snap, Flatpak, AppImage
Klassisch sind apt/dnf/zypper distro-spezifisch. Es gibt aber drei moderne Alternativen die distro-übergreifend funktionieren:
| Format | Treiber | Charakter |
|---|---|---|
| Snap | Canonical (Ubuntu) | Auto-Updates, Sandboxing, eigener Store, kontrovers wegen Performance |
| Flatpak | Red Hat / Community | Standard bei Fedora-Desktop, Flathub als großer Store, Sandboxing |
| AppImage | Community | Einzelne ausführbare Datei, keine Installation nötig, einfach chmod und ausführen |
Diese Formate enthalten alle Dependencies – Snap-Paket von Firefox läuft auf Ubuntu, Fedora, OpenSUSE, Arch – egal welche Library-Versionen das System hat. Trade-off: jedes Paket bringt eigene Bibliotheken mit (mehr Festplatte, mehr Sicherheits-Updates), aber dafür funktioniert es immer.
Im Server-Bereich werden diese Formate selten genutzt – da ist klassisches apt/dnf der Standard. Auf Linux-Desktops aber zunehmend beliebt.
12) Spacewalk und Satellite: zentrale Verwaltung
Im Enterprise-Bereich gibt es Tools für zentrale Linux-Paket-Verwaltung – analog zu WSUS bei Windows:
- Spacewalk: Open-Source-Projekt für RHEL/CentOS-Pakete. Etwas in die Jahre gekommen.
- Red Hat Satellite: kommerzielle Variante von Red Hat. Sehr mächtig, aber teuer.
- Foreman: Open-Source-Alternative für Provisioning + Konfig-Management.
- SUSE Manager: Pendant für SUSE-Systeme.
- Landscape: Canonicals Tool für Ubuntu-Management.
Diese Tools sind die „Server-Verwaltungs-Konsolen" der Linux-Welt – wer hat welche Pakete, welche Updates fehlen, welche Compliance-Probleme gibt's. In Konzern-Umgebungen Standard, in kleinen Setups nutzt man eher Ansible.
13) Best Practices
Aus der Praxis – was du beachten solltest:
- Immer erst
apt/dnf update: Paketlisten aktuell halten - Skripte mit
-y: keine Bestätigungs-Fragen in Automation - GPG-Keys prüfen: externe Repos nur mit verifizierten Signaturen
- Testing zuerst: nie direkt auf Production-Server, immer Staging
- Reboot-Politik: nach Kernel-Updates Reboot nötig – Wartungsfenster
- Backup vor Major-Upgrade:
dist-upgradeoderdo-release-upgradeist heikel - Logs:
/var/log/apt/history.logoder/var/log/dnf.logfür Audit-Trail - Unattended-upgrades für Security: schnelle Patches
- Konfig-Dateien sichern:
apt removebehält Configs (gut),purgelöscht alles (Vorsicht) - Repository-Mirror für air-gapped Netzwerke (z.B. mit
apt-mirror)
Zusammenfassung
Software-Verteilung unter Linux läuft über distro-spezifische Paketmanager auf der Kommandozeile. apt für Debian/Ubuntu, dnf/yum für RHEL/Fedora, zypper für SUSE. Alle haben sehr ähnliche Befehle: install, remove, update, search. apt update ≠ apt upgrade: ersteres aktualisiert Listen, zweites Pakete. Externe Repositories mit GPG-Key in /etc/apt/sources.list.d/ oder /etc/yum.repos.d/. Eigene Pakete bauen mit fpm (einfach) oder dpkg-deb/rpmbuild (klassisch, komplex). Für Massen-Verteilung auf vielen Linux-Servern: Ansible als Standard (Vertiefung in K55 L7). Unattended Upgrades für automatische Sicherheits-Patches. Universelle Formate Snap/Flatpak/AppImage für Desktop, klassisch Server. Enterprise-Tools Spacewalk, Satellite, Foreman, SUSE Manager. Best Practice: Test vor Production, Backups, gute Repo-Hygiene.
