Daftar semua paket yang diinstal menggunakan Homebrew

448

Apakah mungkin dan bagaimana cara saya mendapatkan daftar semua paket yang diinstal pada Mac saya gunakan Homebrew? Saya tidak tertarik dengan paket yang dipasang di luar Homebrew.

amfibi
sumber

Jawaban:

563

brew list dan brew cask list

Running brew listakan menampilkan daftar semua paket Homebrew yang Anda instal.

Selain itu, brew cask listakan menyediakan item yang diinstal menggunakan Homebrew Cask .

daftar minuman

GRG
sumber
2
Jika Anda memiliki daftar ini di file txt. Bagaimana cara Anda menginstal semuanya? brew install < list.txtsepertinya tidak berhasil.
Jonathan
26
@ Jonathan xargs brew install < list.txtJangan ragu untuk mengajukan pertanyaan terpisah untuk detail atau klarifikasi lebih lanjut.
GRG
3
@ grgarside - love terminal prompt Anda. apakah Anda bersedia membagikan file konfigurasi Anda untuk meminta saya agar terlihat seperti itu?
Kaushik Gopal
2
@ Kaushik Saya akhirnya menulis posting blog tentang pengaturan terminal / shell saya — jangan ragu untuk bertanya.
GRG
1
@ Jonathanbrew install $(< list.txt )
phil pirozhkov
279

brew leavesmenampilkan semua paket tingkat atas. Itu adalah paket yang bukan dependensi. Ini harus menjadi yang paling menarik jika Anda menggunakan daftar untuk menginstal ulang paket.

Jonathan
sumber
3
Jawaban bagus. Apakah Anda tahu cara mendapatkan daftar paket yang diinstal oleh pengguna? Ini bisa berbeda dengan leaves.
Steven Shaw
Ya, mis. javaTidak terdaftar leaveskarena ini tergantung pada proyek lain walaupun saya menginstalnya sendiri.
Saad Malik
61

brew bundlemungkin juga menarik jika Anda bertanya karena Anda ingin mengelola instalasi minuman Anda. Ini termasuk tong, yang brew listtidak. Ini bertujuan untuk memiliki pengaturan Homebrew yang dapat direproduksi.

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

Anda dapat menggunakan --globalflag untuk beroperasi pada Anda ~/Brewfiledan -fmemaksa menimpa file Anda yang sudah ada (untuk instalasi, ini akan memaksa penghapusan paket yang tidak terdaftar).

Sam Brightman
sumber
Ini luar biasa! Saya tidak tahu ini ada. Terima kasih. Saya hanya berharap itu seperti brew leavesdan menghapus paket yang tidak Anda instal secara langsung, tetapi hanya dapat sebagai dependensi. Di masa depan paket dapat mengubah dependensi, tetapi Anda tetap akan menginstalnya dan tidak membutuhkannya.
Bruno Bronosky
Iya. Sepertinya setiap manajer paket melewati fase tidak membedakan keduanya.
Sam Brightman
1
Tumpukan saya baru-baru ini menunjukkan bahwa bundlesekarang tidak termasuk dependensi Ada beberapa perubahan lain seperti gaya kutipan dan pemesanan yang membuatnya lebih sulit untuk memahami perbedaannya, tetapi secara keseluruhan sepertinya setidaknya beberapa perpustakaan tidak ada Brewfiletetapi terpasang.
Sam Brightman
20

brew listPerintah pelaksanaan menunjukkan daftar sederhana, diurutkan berdasarkan abjad dari semua paket yang diinstal.

Namun, berbagai paket yang diperlukan (dependensi) terinstal secara otomatis ketika menginstal paket menggunakan Homebrew. Dimungkinkan untuk melihat daftar semua paket yang diinstal sebagai pohon dependensi yang diformat dengan baik. Untuk melihatnya, jalankan perintah berikut:

brew deps --tree --installed

Contoh output adalah seperti yang ditunjukkan di bawah ini:

gdbm

openssl

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

readline

sqlite
└── readline

xz

Paket-paket yang terdaftar secara independen (misalnya gdbmdan openssldalam contoh output di atas) tidak memiliki dependensi. Paket-paket digambarkan sebagai bagian dari struktur pohon memiliki ketergantungan mereka terdaftar pada tingkat yang lebih rendah langsung (misalnya paket sqlitemengharuskan paket yang readlineakan diinstal). Paket yang terdaftar di node daun dalam struktur pohon tidak memiliki dependensi.

Ketergantungan yang divisualisasikan dalam struktur pohon dapat membantu dengan mudah menyingkirkan paket yang tidak perlu.

Nimesh Neema
sumber
1
The brew leavesperintah yang disebutkan di atas adalah berguna dalam hal ini; itu hanya mencantumkan paket tingkat atas.
Paul Bissex
6

Anda dapat menggunakan brew list | grep 'package-name'atau jika mencari paket tertentu.
brew list 'package-name'juga berfungsi dan memberikan informasi tambahan.

Rahul Prasad
sumber