Ein Package-Manager (deutsch: Paketverwalter) ist ein Werkzeug zum Installieren, Aktualisieren und Entfernen von Softwarepaketen. Er lädt Pakete aus einem Repository, löst Abhängigkeiten automatisch auf und hält so Bibliotheken und Programme konsistent auf dem System oder im Projekt.
Sprach-Package-Manager
Die meisten Programmiersprachen bringen einen eigenen Paketverwalter mit:
- npm und Yarn für JavaScript/Node.js
- pip für Python
- Composer für PHP
- Cargo für Rust
- Maven und Gradle für Java
- Go Modules für Go
- Bundler für Ruby
Die entsprechenden Kommandos findest du in den npm- und pip-Befehlen sowie den Composer-Befehlen.
System-Package-Manager
Auch Betriebssysteme nutzen Paketverwalter: apt und dpkg bei Debian/Ubuntu, dnf bei Fedora, pacman bei Arch und Homebrew bei macOS. Sie verwalten Systembibliotheken, Dienste und Anwendungen inklusive Sicherheitsupdates.
Lockfiles und reproduzierbare Builds
Moderne Package-Manager schreiben eine Lockfile (z.B. package-lock.json, poetry.lock), die exakt festhält, welche Versionen installiert sind. Dadurch entstehen reproduzierbare Builds: Jedes Teammitglied und jeder CI-Server erhält dieselben Versionen. Das ist die Grundlage für sauberes Versionierung- und Deployment-Management.
Beispiel
# Python-Paket installieren
pip install requests
# JavaScript-Paket als Abhängigkeit hinzufügen
npm install lodash --save
# Rust-Projekt bauen (lädt Abhängigkeiten automatisch)
cargo build
Verwandte Grundlagen: Dependency, Docker-Befehle, Git-Befehle.