Список усіх пакунків, встановлених за допомогою Homebrew


447

Чи можливо і як отримати список усіх пакунків, встановлених на моєму Mac Homebrew? Мене не цікавлять пакети, встановлені за межами Homebrew.

Відповіді:


563

brew list і brew cask list

Запуск brew listпокаже список усіх встановлених пакунків Homebrew.

Крім того, brew cask listбудуть надані елементи, встановлені за допомогою Homebrew Cask .

пивоварний список


2
Якщо у вас був цей список у файлі txt. Як би ви вирішили встановити їх? brew install < list.txtСхоже, не працює.
Джонатан

26
@Jonathan Не xargs brew install < list.txtсоромтеся задавати окреме запитання для отримання більш детальної інформації та роз'яснень.
гр

3
@grgarside - підказка терміналу про любов ур. Ви б готові поділитися своїми конфігураційними файлами, щоб отримати моє підказка так виглядати?
Каушик Гопал

2
@Kaushik Нарешті я написав повідомлення в блозі про моє налаштування термінала / оболонки - не соромтесь задавати там будь-які питання.
гр

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

278

brew leavesпоказує всі пакети вищого рівня. Це пакети, які не є залежностями. Це має бути найцікавішим, якщо ви використовуєте список для перевстановлення пакунків.


3
Гарна відповідь. Чи знаєте ви, як отримати список пакунків, встановлених користувачем? Це може бути різним leaves.
Стівен Шоу

Так, наприклад java, не вказано в leavesтому, що це залежність від іншого проекту, навіть якщо я його встановив сам.
Саад Малик

61

brew bundleможе також бути цікавим, якщо ви запитуєте, оскільки ви хочете керувати установкою варіння. Сюди входять бочки, а brew listце не так. Він спрямований на можливість відтворення домашніх програм.

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

Ви можете використовувати --globalпрапор для роботи над вашим файлом ~/Brewfileта -fдля примусового перезапису наявного файлу (для встановлення це призведе до вилучення невключених пакетів).


Це чудово! Я не мав уявлення, що це існує. Дякую. Я б тільки хотів, щоб це було як brew leavesі пропустили пакунки, які ви не встановлювали безпосередньо, а отримали лише залежність. Надалі пакет може змінити залежності, але ви все одно встановите його і не будете потребувати.
Бруно Броноський

Так. Схоже, кожен менеджер пакунків проходить цю фазу не диференціації двох.
Сем Брайтман

1
Нещодавній мінний смітник говорить про те, що bundleзараз виключаються залежності. Є деякі інші зміни, такі як стиль цитування та впорядкування, які ускладнюють розуміння різниці, але в цілому схоже, що принаймні деякі бібліотеки відсутні, Brewfileале встановлені.
Сем Брайтман

20

brew listКоманда виконання показує простий в алфавітному порядку відсортований список усіх встановлених пакетів.

Однак різні необхідні пакети (залежності) автоматично встановлюються під час встановлення пакету за допомогою Homebrew. Список усіх встановлених пакетів можна переглянути як добре відформатоване дерево залежності. Щоб переглянути його, виконайте таку команду:

brew deps --tree --installed

Приклад виводу, як показано нижче:

gdbm

openssl

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

readline

sqlite
└── readline

xz

Незалежно перераховані пакети (наприклад, gdbmта opensslу наведеному вище прикладі) не залежать. Пакети, зображені як частина структури дерева, мають свою залежність, перелічену на найближчому нижньому рівні (наприклад, пакет sqliteвимагає встановлення пакета readline). Пакети, перелічені у вузлах листя в структурах дерев, не залежать.

Залежності, візуалізовані в структурі дерева, можуть допомогти легко позбутися від непотрібних пакетів.


1
brew leavesЗгадувалося вище команда корисна в цьому відношенні; у ньому перелічені лише пакети верхнього рівня.
Пол Біссекс

6

Ви можете використовувати brew list | grep 'package-name'або шукаєте конкретний пакет.
brew list 'package-name'також працює і надає додаткову інформацію.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.