Lista wszystkich pakietów zainstalowanych przy użyciu Homebrew

447

Czy jest to możliwe i jak uzyskać listę wszystkich pakietów zainstalowanych na moim komputerze Mac za pomocą Homebrew? Nie jestem zainteresowany pakietami instalowanymi poza Homebrew.

amfibia
źródło

Odpowiedzi:

563

brew list i brew cask list

Uruchomienie brew listpokaże listę wszystkich zainstalowanych pakietów Homebrew.

Ponadto brew cask listzapewni przedmioty zainstalowane przy użyciu Homebrew Cask .

lista parzenia

grg
źródło
2
Jeśli masz tę listę w pliku txt. Jak poszedłbyś zainstalować wszystkie z nich? brew install < list.txtwydaje się nie działać.
Jonathan
26
@Jathanathan xargs brew install < list.txtZapraszam do zadawania osobnych pytań w celu uzyskania szczegółowych informacji lub wyjaśnień.
grg
3
@grgarside - love ur terminal terminal. czy byłbyś skłonny udostępnić swoje pliki konfiguracyjne, aby mój monit wyglądał tak?
Kaushik Gopal
2
@Kaushik W końcu napisałem wpis na blogu o konfiguracji terminala / powłoki - nie krępuj się zadawać tam jakichkolwiek pytań.
grg
1
@Jonathanbrew install $(< list.txt )
phil pirozhkov
278

brew leavespokazuje wszystkie pakiety najwyższego poziomu. To są pakiety, które nie są zależnościami. To powinno być najbardziej interesujące, jeśli używasz listy do ponownej instalacji pakietów.

Jonathan
źródło
3
Niezła odpowiedź. Czy wiesz, jak uzyskać listę pakietów zainstalowanych przez użytkownika? Może być inny niż leaves.
Steven Shaw,
Tak, np. javaNie ma go na liście, leavesponieważ jest zależny od innego projektu, nawet jeśli sam go zainstalowałem.
Saad Malik
61

brew bundlemoże być również interesujące, jeśli pytasz, ponieważ chcesz zarządzać instalacją naparu. Obejmuje to beczki, które brew listnie. Ma to na celu uzyskanie powtarzalnych ustawień Homebrew.

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

Możesz użyć --globalflagi, aby działać na swoim komputerze ~/Brewfilei -fwymusić zastąpienie istniejącego pliku (w przypadku instalacji wymusi to odinstalowanie niewymienionych pakietów).

Sam Brightman
źródło
To jest wspaniałe! Nie miałem pojęcia, że ​​to istnieje. Dziękuję Ci. Chciałbym tylko, żeby to było brew leavesi pomijałem pakiety, których nie zainstalowałeś bezpośrednio, ale dostałem tylko jako zależności. W przyszłości pakiet może zmieniać zależności, ale i tak go zainstalujesz i nie będziesz go potrzebował.
Bruno Bronosky,
Tak. Wygląda na to, że każdy menedżer pakietów przechodzi tę fazę nierozróżniania tych dwóch.
Sam Brightman,
1
Mój ostatni zrzut sugeruje, że bundleteraz wyklucza zależności. Istnieją również inne zmiany, takie jak styl cytowania i porządkowanie, które utrudniają zrozumienie różnicy, ale ogólnie wygląda na to, że brakuje przynajmniej niektórych bibliotek, Brewfileale zostały zainstalowane.
Sam Brightman,
20

Wykonanie brew listpolecenia pokazuje prostą, posortowaną alfabetycznie listę wszystkich zainstalowanych pakietów.

Jednak różne wymagane pakiety (zależności) są instalowane automatycznie podczas instalowania pakietu za pomocą Homebrew. Można wyświetlić listę wszystkich zainstalowanych pakietów jako ładnie sformatowane drzewo zależności. Aby go wyświetlić, wykonaj następujące polecenie:

brew deps --tree --installed

Przykładowe dane wyjściowe są pokazane poniżej:

gdbm

openssl

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

readline

sqlite
└── readline

xz

Niezależnie od siebie wymienione opakowania (na przykład gdbm, a opensslna wyjściu z powyższego przykładu) nie ma zależności. Pakiety przedstawione jako część struktury drzewa mają swoją zależność na liście bezpośrednio na niższym poziomie (np. Pakiet sqlitewymaga readlinezainstalowania pakietu ). Pakiety wymienione w węzłach liści w strukturach drzew nie mają zależności.

Zależności wizualizowane w strukturze drzewa mogą pomóc w łatwym pozbyciu się niepotrzebnych pakietów.

Nimesh Neema
źródło
1
brew leavesPolecenie wspomniano powyżej, jest użyteczna w tym względzie; wyświetla tylko pakiety najwyższego poziomu.
Paul Bissex
6

Możesz użyć brew list | grep 'package-name'lub jeśli szukasz konkretnego pakietu.
brew list 'package-name'działa również i zapewnia dodatkowe informacje.

Rahul Prasad
źródło