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.