Danh sách tất cả các gói được cài đặt bằng Homebrew


448

Có thể và làm cách nào để tôi có được danh sách tất cả các gói được cài đặt trên máy Mac của mình bằng cách sử dụng Homebrewkhông? Tôi không quan tâm đến các gói được cài đặt bên ngoài Homebrew.

Câu trả lời:


563

brew listbrew cask list

Chạy brew listsẽ hiển thị danh sách tất cả các gói Homebrew đã cài đặt của bạn.

Ngoài ra, brew cask listsẽ cung cấp các mục được cài đặt bằng Homebrew Cask .

danh sách bia


2
Nếu bạn có danh sách này trong một tệp txt. Làm thế nào bạn sẽ đi về cài đặt tất cả chúng? brew install < list.txtdường như không hoạt động.
Jonathan

26
@Jonathan xargs brew install < list.txtHãy hỏi một câu hỏi riêng để biết thêm chi tiết hoặc làm rõ.
grg

3
@grgarside - Yêu thiết bị đầu cuối ur. bạn có sẵn sàng chia sẻ tập tin cấu hình của mình để nhận được lời nhắc của tôi không?
Kaushik Gopal

2
@Kaushik Cuối cùng tôi đã viết một bài đăng trên blog về thiết lập thiết bị đầu cuối / shell của mình .
grg

1
@ Jonathanbrew install $(< list.txt )
phil pirozhkov

279

brew leaveshiển thị cho bạn tất cả các gói cấp cao nhất. Đó là các gói không phụ thuộc. Điều này sẽ thú vị nhất nếu bạn đang sử dụng danh sách để cài đặt lại các gói.


3
Câu trả lời tốt đẹp. Bạn có biết làm thế nào để có được một danh sách các gói đã được người dùng cài đặt không? Điều này có thể khác nhau leaves.
Steven Shaw

Vâng, vd: javakhông được liệt kê trong leavesđó vì nó phụ thuộc vào dự án khác mặc dù tôi đã tự cài đặt nó.
Saad Malik

61

brew bundlecũng có thể thú vị nếu bạn đang hỏi bởi vì bạn muốn quản lý cài đặt bia của bạn. Điều này bao gồm các thùng, mà brew listkhông. Nó nhằm mục đích có các thiết lập Homebrew có thể tái tạo.

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

Bạn có thể sử dụng --globalcờ để hoạt động trên ~/Brewfile-fbuộc ghi đè tệp hiện có của bạn (để cài đặt, điều này sẽ buộc gỡ cài đặt các gói không được liệt kê).


Thật tuyệt vời! Tôi không có ý tưởng này tồn tại. Cảm ơn bạn. Tôi chỉ muốn nó giống như brew leavesvà bỏ qua các gói bạn không cài đặt trực tiếp, nhưng chỉ nhận được dưới dạng phụ thuộc. Trong tương lai, một gói có thể thay đổi phụ thuộc, nhưng dù sao bạn cũng sẽ cài đặt nó và không cần nó.
Bruno Bronosky

Đúng. Có vẻ như mọi người quản lý gói đều trải qua giai đoạn không phân biệt hai thứ này.
Sam Brightman

1
Một bãi chứa gần đây của tôi cho thấy rằng bundlebây giờ loại trừ phụ thuộc. Có một số thay đổi khác như kiểu trích dẫn và thứ tự khiến cho việc hiểu khác biệt trở nên khó khăn hơn, nhưng nhìn chung có vẻ như ít nhất một số thư viện bị thiếu Brewfilenhưng được cài đặt.
Sam Brightman

20

brew listLệnh thực thi hiển thị một danh sách đơn giản, được sắp xếp theo thứ tự abc của tất cả các gói được cài đặt.

Tuy nhiên, các gói yêu cầu khác nhau (phụ thuộc) sẽ tự động được cài đặt khi cài đặt gói bằng Homebrew. Có thể xem danh sách tất cả các gói được cài đặt dưới dạng cây phụ thuộc được định dạng độc đáo. Để xem nó, thực hiện lệnh sau:

brew deps --tree --installed

Một ví dụ đầu ra như dưới đây:

gdbm

openssl

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

readline

sqlite
└── readline

xz

Các gói được liệt kê độc lập (ví dụ gdbmopenssltrong ví dụ đầu ra ở trên) không có phụ thuộc. Các gói được mô tả như là một phần của cấu trúc cây có sự phụ thuộc của chúng được liệt kê ở mức thấp hơn ngay lập tức (ví dụ: gói sqliteyêu cầu gói readlinephải được cài đặt). Các gói được liệt kê tại các nút lá trong cấu trúc cây không có phụ thuộc.

Sự phụ thuộc được hình dung trong một cấu trúc cây có thể giúp dễ dàng loại bỏ các gói không cần thiết.


1
Các brew leaveslệnh nêu trên là hữu ích trong vấn đề này; nó chỉ liệt kê các gói cấp cao nhất.
Paul Bissex

6

Bạn có thể sử dụng brew list | grep 'package-name'hoặc nếu đang tìm kiếm gói cụ thể.
brew list 'package-name'cũng hoạt động và cung cấp thêm thông tin.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.