# Homebrew — Der Paketmanager brew für macOS und Linux

> Praxis-Guide zu Homebrew (brew) — Formulae und Casks installieren, aktualisieren und verwalten, dazu Services und Brewfile auf macOS und Linux.

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

<!-- PROSE:intro -->
Homebrew ist „der fehlende Paketmanager" für macOS – und läuft längst auch auf Linux. Mit dem Kommando `brew` installierst, aktualisierst und entfernst du Kommandozeilen-Werkzeuge, ohne dich um Compiler-Flags oder Systempfade zu kümmern. Dabei unterscheidet Homebrew zwei Welten: **Formulae** sind klassische CLI-Pakete, **Casks** bringen fertige GUI-Anwendungen auf den Mac. Dieser Guide zeigt dir die Befehle, die du im Alltag wirklich brauchst – vom Installieren über Updates und Abhängigkeiten bis zu Services und reproduzierbaren Setups per Brewfile.
<!-- PROSE:intro:end -->

## Installieren & Suchen

`brew install <formula>` — Installiert ein Kommandozeilen-Paket (Formula).

```bash
brew install wget
```

`brew install --cask <cask>` — Installiert eine GUI-Anwendung (Cask, nur macOS).

```bash
brew install --cask firefox
```

`brew search <query>` — Sucht nach Paketen anhand des Namens.

```bash
brew search node
```

`brew info <formula>` — Zeigt ausführliche Informationen zu einem Paket.

```bash
brew info nginx
```

`brew home <formula>` — Öffnet die Projektseite eines Pakets im Browser.

```bash
brew home git
```

## Aktualisieren & Upgrade

`brew update` — Aktualisiert Homebrew selbst und alle Tap-Repositories.

```bash
brew update
```

`brew upgrade` — Bringt alle installierten Pakete auf die neueste Version.

```bash
brew upgrade
```

`brew upgrade <formula>` — Aktualisiert ein bestimmtes Paket.

```bash
brew upgrade node
```

`brew outdated` — Listet installierte Pakete mit verfügbaren Updates auf.

```bash
brew outdated
```

`brew pin <formula>` — Fixiert ein Paket, um es vom Upgrade auszuschließen.

```bash
brew pin postgresql@15
```

`brew unpin <formula>` — Löst die Fixierung wieder, sodass Upgrades möglich sind.

```bash
brew unpin postgresql@15
```

## Deinstallieren & Aufräumen

`brew uninstall <formula>` — Deinstalliert ein Paket.

```bash
brew uninstall wget
```

`brew uninstall --cask <cask>` — Deinstalliert eine Cask-Anwendung.

```bash
brew uninstall --cask firefox
```

`brew cleanup` — Entfernt alte Versionen und leert den Download-Cache.

```bash
brew cleanup
```

`brew cleanup -s` — Räumt den Cache komplett auf, auch für aktuelle Versionen.

```bash
brew cleanup -s
```

`brew autoremove` — Entfernt nicht mehr benötigte Abhängigkeiten (Verwaiste).

```bash
brew autoremove
```

## Auflisten & Abhängigkeiten

`brew list` — Listet alle installierten Formulae auf.

```bash
brew list
```

`brew list --cask` — Listet alle installierten Casks auf.

```bash
brew list --cask
```

`brew deps <formula>` — Zeigt die Abhängigkeiten eines Pakets.

```bash
brew deps nginx
```

`brew deps --tree <formula>` — Zeigt den Abhängigkeitsbaum.

```bash
brew deps --tree php
```

`brew uses --installed <formula>` — Zeigt, welche installierten Pakete von einer Formula abhängen.

```bash
brew uses --installed openssl
```

`brew leaves` — Listet Pakete auf, die keine Abhängigkeit anderer Pakete sind.

```bash
brew leaves
```

## Services

`brew services list` — Listet alle verwalteten Services und ihren Status auf.

```bash
brew services list
```

`brew services start <formula>` — Startet einen Service (und registriert ihn für den Login).

```bash
brew services start postgresql@15
```

`brew services stop <formula>` — Stoppt einen Service (und meldet ihn ab).

```bash
brew services stop postgresql@15
```

`brew services restart <formula>` — Startet einen Service neu.

```bash
brew services restart nginx
```

`brew services run <formula>` — Startet einen Service, ohne ihn für den Login zu registrieren.

```bash
brew services run redis
```

## Taps & Diagnose

`brew tap` — Listet alle eingebundenen Taps (Drittanbieter-Repositories) auf.

```bash
brew tap
```

`brew tap <user>/<repo>` — Bindet einen Drittanbieter-Tap ein.

```bash
brew tap homebrew/cask-fonts
```

`brew untap <user>/<repo>` — Entfernt einen Tap.

```bash
brew untap homebrew/cask-fonts
```

`brew doctor` — Prüft die Installation auf mögliche Probleme.

```bash
brew doctor
```

`brew config` — Zeigt die Homebrew- und System-Konfiguration.

```bash
brew config
```

`brew bundle dump` — Erzeugt aus den aktuell installierten Paketen ein Brewfile.

```bash
brew bundle dump --file=~/Brewfile
```

`brew bundle install` — Installiert alle Pakete aus einem Brewfile.

```bash
brew bundle install --file=~/Brewfile
```

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

Homebrew nimmt dir die mühsame Handarbeit bei der Software-Installation ab und hält dein System mit `brew update && brew upgrade` aktuell. Führe `brew` dabei **niemals mit sudo** aus – Homebrew arbeitet bewusst im eigenen Verzeichnis, und `sudo` zerschießt die Berechtigungen. Befehle wie `brew cleanup` und `brew uninstall` löschen Dateien unwiderruflich, und Casks laden ausführbare Binaries aus dem Netz – installiere also nur, was du aus vertrauenswürdiger Quelle kennst. Für reproduzierbare Setups lohnt sich ein versioniertes Brewfile: einmal mit `brew bundle dump` erzeugt, richtest du damit auf jedem neuen Rechner per `brew bundle install` dieselbe Umgebung ein.

## Weiterführende Links

- [brew.sh](https://brew.sh/index_de) – offizielle Projektseite mit Installationsanleitung
- [docs.brew.sh](https://docs.brew.sh/) – ausführliche Dokumentation und Referenz (englisch)
- [Homebrew – GitHub-Projekt](https://github.com/Homebrew/brew) – Quellcode, Releases und Issues (englisch)
<!-- PROSE:outro:end -->

## Verwandte Kommandos

- [apk](https://www.jpkc.com/db/cheatsheets/package-managers/apk/) – Paketmanager von Alpine Linux, schlank und schnell
- [apt](https://www.jpkc.com/db/cheatsheets/package-managers/apt/) – moderne Paketverwaltung von Debian und Ubuntu
- [apt-get](https://www.jpkc.com/db/cheatsheets/package-managers/apt-get/) – klassisches APT-Werkzeug für Skripte und Automatisierung

