# apt-get — Das klassische Paket-Werkzeug für Debian und Ubuntu

> Praxis-Guide zu apt-get — das stabile Low-Level-APT-Werkzeug für Debian und Ubuntu: ideal für Skripte, CI und Docker dank vorhersagbarer Ausgabe.

Source: https://www.jpkc.com/db/cheatsheets/package-managers/apt-get/

<!-- PROSE:intro -->
`apt-get` ist das klassische, skript-stabile Low-Level-Werkzeug der APT-Paketverwaltung unter Debian und Ubuntu. Während das neuere `apt` auf eine hübsche, interaktive Bedienung am Terminal optimiert ist, behält `apt-get` über Versionen hinweg eine stabile Ausgabe und ein festes Set an Optionen bei – genau deshalb solltest du es in Skripten, CI-Pipelines und Dockerfiles dem interaktiven `apt` vorziehen. Dieser Guide zeigt dir die wichtigsten Befehle für den Alltag: vom Aktualisieren des Paketindex über das Installieren und Entfernen von Paketen bis zu den Optionen für vollautomatische, nicht-interaktive Läufe.
<!-- PROSE:intro:end -->

## Aktualisieren & Upgrade

`apt-get update` — Aktualisiert den Paketindex.

```bash
sudo apt-get update
```

`apt-get upgrade` — Aktualisiert alle Pakete (entfernt nie Pakete).

```bash
sudo apt-get upgrade -y
```

`apt-get dist-upgrade` — Intelligentes Upgrade: kann Pakete hinzufügen oder entfernen, um Abhängigkeiten aufzulösen.

```bash
sudo apt-get dist-upgrade
```

## Installieren & Entfernen

`apt-get install <package>` — Installiert ein Paket.

```bash
sudo apt-get install -y nginx
```

`apt-get install --no-install-recommends <package>` — Installiert ohne empfohlene Pakete (kleinerer Fußabdruck).

```bash
sudo apt-get install --no-install-recommends php8.3
```

`apt-get install -f` — Repariert kaputte Abhängigkeiten.

```bash
sudo apt-get install -f
```

`apt-get remove <package>` — Entfernt ein Paket (Konfiguration bleibt erhalten).

```bash
sudo apt-get remove nginx
```

`apt-get purge <package>` — Entfernt ein Paket samt seiner Konfigurationsdateien.

```bash
sudo apt-get purge nginx
```

`apt-get autoremove` — Entfernt nicht mehr benötigte Abhängigkeiten.

```bash
sudo apt-get autoremove -y
```

## Herunterladen & Quellpakete

`apt-get download <package>` — Lädt ein .deb-Paket herunter, ohne es zu installieren.

```bash
apt-get download nginx
```

`apt-get source <package>` — Lädt das Quellpaket herunter.

```bash
apt-get source nginx
```

`apt-get build-dep <package>` — Installiert die Build-Abhängigkeiten für ein Quellpaket.

```bash
sudo apt-get build-dep nginx
```

`apt-get install --reinstall <package>` — Installiert ein Paket neu.

```bash
sudo apt-get install --reinstall openssh-server
```

## Cache & Aufräumen

`apt-get clean` — Löscht alle zwischengespeicherten .deb-Pakete aus /var/cache/apt/archives.

```bash
sudo apt-get clean
```

`apt-get autoclean` — Löscht veraltete zwischengespeicherte Pakete.

```bash
sudo apt-get autoclean
```

`apt-get check` — Prüft, ob es keine kaputten Abhängigkeiten gibt.

```bash
apt-get check
```

## Optionen für Skripte

`apt-get install -y <package>` — Bestätigt automatisch (beantwortet alle Rückfragen mit Ja).

```bash
sudo apt-get install -y curl wget
```

`apt-get install -q <package>` — Stiller Modus (weniger Ausgabe, gut für Skripte).

```bash
sudo apt-get install -qq -y nginx
```

`apt-get install --dry-run <package>` — Simuliert die Installation, ohne Änderungen vorzunehmen.

```bash
apt-get install --dry-run docker-ce
```

`DEBIAN_FRONTEND=noninteractive apt-get install -y <package>` — Vollständig nicht-interaktive Installation (für Docker/CI).

```bash
DEBIAN_FRONTEND=noninteractive sudo apt-get install -y tzdata
```

<!-- PROSE:outro -->
## Fazit

`apt-get` ist die verlässliche Wahl überall dort, wo Maschinen statt Menschen die Pakete verwalten: In Skripten, Dockerfiles und CI-Pipelines bekommst du eine stabile, vorhersagbare Ausgabe und ein über Jahre konstantes Optionen-Set. Am Terminal von Hand ist das modernere `apt` oft komfortabler – für Automatisierung bleibt `apt-get` aber erste Wahl. Sei vorsichtig mit `remove`, `purge` und `autoremove`: Sie löschen Pakete, und `purge` entfernt zusätzlich die Konfigurationsdateien. Auch `dist-upgrade` kann Pakete entfernen, um Abhängigkeiten aufzulösen – prüfe vorher mit `--dry-run`, was tatsächlich passieren würde. Schreibende Befehle brauchen Root-Rechte (`sudo`); lesende Befehle wie `check` oder `download` kommen ohne aus.

## Weiterführende Links

- [APT – Debian-Wiki (deutsch)](https://wiki.debian.org/de/Apt) – Überblick über die APT-Werkzeuge und ihren Einsatz
- [apt-get(8) – Manpage (englisch)](https://manpages.debian.org/stable/apt/apt-get.8.en.html) – vollständige Referenz aller Optionen
<!-- PROSE:outro:end -->

## Verwandte Kommandos

- [apk](https://www.jpkc.com/db/cheatsheets/package-managers/apk/) – Paketmanager von Alpine Linux, schlank für Container
- [apt](https://www.jpkc.com/db/cheatsheets/package-managers/apt/) – das moderne, interaktive APT-Frontend fürs Terminal
- [brew](https://www.jpkc.com/db/cheatsheets/package-managers/brew/) – Homebrew, der Paketmanager für macOS und Linux

