Liste aller Pakete, die mit Homebrew installiert wurden

448

Ist es möglich und wie bekomme ich eine Liste aller auf meinem Mac installierten Pakete mit Homebrew? Ich bin nicht an Paketen interessiert, die außerhalb von Homebrew installiert wurden.

amphibient
quelle

Antworten:

563

brew list und brew cask list

Beim Ausführen brew listwird eine Liste aller installierten Homebrew-Pakete angezeigt.

Darüber hinaus brew cask listwerden die Elemente bereitgestellt, die mit Homebrew Cask installiert wurden .

Brauliste

grg
quelle
2
Wenn Sie diese Liste in einer txt-Datei hätten. Wie würden Sie alle installieren? brew install < list.txtscheint nicht zu funktionieren.
Jonathan
26
@ Jonathan xargs brew install < list.txtFühlen Sie sich frei, eine separate Frage zu stellen, um weitere Details oder Erläuterungen zu erhalten.
grg
3
@grgarside - Liebe deine Terminal-Eingabeaufforderung. Wären Sie bereit, Ihre Konfigurationsdateien freizugeben, damit meine Eingabeaufforderung so aussieht?
Kaushik Gopal
2
@Kaushik Ich habe endlich einen Blog-Beitrag über mein Terminal- / Shell-Setup geschrieben. Sie können dort jederzeit Fragen stellen.
grg
1
@ Jonathanbrew install $(< list.txt )
Phil Pirozhkov
279

brew leaveszeigt Ihnen alle Top-Level-Pakete. Das sind Pakete, die keine Abhängigkeiten sind. Dies sollte am interessantesten sein, wenn Sie die Liste zum erneuten Installieren von Paketen verwenden.

Jonathan
quelle
3
Gute Antwort. Wissen Sie, wie Sie eine Liste der vom Benutzer installierten Pakete erhalten? Dies kann anders sein als leaves.
Steven Shaw
Ja, z. B. javaist nicht in aufgeführt, leavesda es sich um eine Abhängigkeit von einem anderen Projekt handelt, obwohl ich es selbst installiert habe.
Saad Malik
61

brew bundleDies kann auch interessant sein, wenn Sie Fragen haben, weil Sie Ihre Brauanlage verwalten möchten. Dies schließt auch Fässer ein, die brew listdies nicht tun . Es zielt darauf ab, reproduzierbare Homebrew-Setups zu haben.

# creates Brewfile in the current directory from currently-installed packages
brew bundle dump
# edit Brewfile
# install everything from the Brewfile
brew bundle

Sie können das --globalFlag verwenden, um auf Ihre zuzugreifen ~/Brewfileund -fdas Überschreiben Ihrer vorhandenen Datei zu erzwingen (bei der Installation wird dadurch die Deinstallation nicht aufgelisteter Pakete erzwungen).

Sam Brightman
quelle
Das ist ausgezeichnet! Ich hatte keine Ahnung, dass es das gibt. Danke. Ich wünschte nur, es wäre so brew leavesund ließ die Pakete weg, die du nicht direkt installiert hast, sondern nur als Abhängigkeiten. In Zukunft kann ein Paket Abhängigkeiten ändern, aber Sie werden es trotzdem installieren und brauchen es nicht.
Bruno Bronosky
Ja. Es scheint, dass jeder Paketmanager diese Phase durchläuft, in der beide nicht voneinander unterschieden werden.
Sam Brightman
1
Ein kürzlich veröffentlichter Dump von mir legt nahe, dass bundleAbhängigkeiten nun ausgeschlossen sind. Es gibt einige andere Änderungen, wie Anführungszeichen und Reihenfolge, die das Verständnis des Unterschieds erschweren, aber insgesamt sieht es so aus, als ob zumindest einige Bibliotheken fehlen, Brewfileaber installiert sind.
Sam Brightman
20

Executing brew listCommand zeigt eine einfache, alphabetisch sortierte Liste aller installierten Pakete.

Verschiedene erforderliche Pakete (Abhängigkeiten) werden jedoch automatisch installiert, wenn ein Paket mit Homebrew installiert wird. Es ist möglich, die Liste aller installierten Pakete als schön formatierten Abhängigkeitsbaum anzuzeigen. Führen Sie zum Anzeigen den folgenden Befehl aus:

brew deps --tree --installed

Eine Beispielausgabe ist wie folgt:

gdbm

openssl

python
├── gdbm
├── openssl
├── readline
├── sqlite
│   └── readline
└── xz

readline

sqlite
└── readline

xz

Die unabhängig aufgeführten Pakete (z. B. gdbmund opensslin der obigen Beispielausgabe) haben keine Abhängigkeiten. Bei den als Teil einer Baumstruktur dargestellten Paketen ist die Abhängigkeit auf einer unmittelbar niedrigeren Ebene aufgeführt (z. B. sqliteerfordert das Paket readline, dass das Paket installiert wird). Die an Blattknoten in den Baumstrukturen aufgelisteten Pakete haben keine Abhängigkeiten.

Abhängigkeiten, die in einer Baumstruktur dargestellt werden, können dazu beitragen, unnötige Pakete einfach zu entfernen.

Nimesh Neema
quelle
1
Der brew leavesoben erwähnte Befehl ist in dieser Hinsicht nützlich; Es werden nur die Pakete der obersten Ebene aufgelistet.
Paul Bissex
6

Sie können verwenden brew list | grep 'package-name'oder wenn Sie nach einem bestimmten Paket suchen.
brew list 'package-name'funktioniert auch und bietet zusätzliche Informationen.

Rahul Prasad
quelle