Lista de todos los paquetes instalados usando Homebrew


448

¿Es posible y cómo obtengo una lista de todos los paquetes instalados en mi Mac Homebrew? No estoy interesado en paquetes instalados fuera de Homebrew.

Respuestas:


563

brew list y brew cask list

Running brew listmostrará una lista de todos los paquetes de Homebrew instalados.

Además, brew cask listproporcionará los elementos instalados utilizando Homebrew Cask .

lista de preparación


2
Si tuviera esta lista en un archivo txt. ¿Cómo harías para instalarlos todos? brew install < list.txtno parece funcionar
Jonathan

26
@ Jonathan No xargs brew install < list.txtdude en hacer una pregunta por separado para obtener más detalles o aclaraciones.
grg

3
@grgarside: ama tu mensaje de terminal. ¿estaría dispuesto a compartir sus archivos de configuración para que mi mensaje se vea así?
Kaushik Gopal

2
@Kaushik Finalmente escribí una publicación de blog sobre la configuración de mi terminal / shell. No dude en hacer cualquier pregunta allí.
grg

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

279

brew leavesmuestra todos los paquetes de nivel superior. Eso es paquetes que no son dependencias. Esto debería ser lo más interesante si está utilizando la lista para reinstalar paquetes.


3
Buena respuesta. ¿Sabes cómo obtener una lista de los paquetes que instaló el usuario? Esto puede ser diferente a leaves.
Steven Shaw

Sí, por ejemplo, javano aparece en la lista leavesporque es una dependencia de otro proyecto, aunque lo instalé yo mismo.
Saad Malik

61

brew bundleTambién puede ser interesante si está preguntando porque desea administrar su instalación de café. Esto incluye barriles, que brew listno. Está dirigido a tener configuraciones reproducibles de Homebrew.

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

Puede usar el --globalindicador para operar en su ~/Brewfiley -fforzar la sobrescritura de su archivo existente (para la instalación, esto forzará la desinstalación de los paquetes que no figuran en la lista).


¡Esto es excelente! No tenía idea de que esto existía. Gracias. Solo desearía que fuera así brew leavesy omitiera los paquetes que no instaló directamente, sino que solo se obtuvieron como dependencias. En el futuro, un paquete puede cambiar las dependencias, pero lo instalará de todos modos y no lo necesitará.
Bruno Bronosky

Si. Parece que cada administrador de paquetes pasa por esta fase de no diferenciar los dos.
Sam Brightman

1
Un vertedero reciente sugiere que bundleahora excluye las dependencias. Hay otros cambios, como el estilo de cotización y el orden, que dificultan la comprensión de la diferencia, pero en general parece que al menos algunas bibliotecas faltan Brewfilepero están instaladas.
Sam Brightman

20

El brew listcomando de ejecución muestra una lista simple, ordenada alfabéticamente de todos los paquetes instalados.

Sin embargo, varios paquetes necesarios (dependencias) se instalan automáticamente al instalar un paquete usando Homebrew. Es posible ver la lista de todos los paquetes instalados como un árbol de dependencias bien formateado. Para verlo, ejecute el siguiente comando:

brew deps --tree --installed

Un ejemplo de salida es como se muestra a continuación:

gdbm

openssl

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

readline

sqlite
└── readline

xz

Los paquetes listados de forma independiente (por ejemplo, gdbmy opensslen el ejemplo de salida anterior) no tienen dependencias. Los paquetes representados como parte de una estructura de árbol tienen su dependencia listada en el nivel inferior inmediato (por ejemplo, el paquete sqliterequiere que el paquete readlineesté instalado). Los paquetes enumerados en los nodos hoja en las estructuras de árbol no tienen dependencias.

Las dependencias visualizadas en una estructura de árbol pueden ayudar a deshacerse fácilmente de los paquetes innecesarios.


1
El brew leavescomando mencionado anteriormente es útil a este respecto; enumera solo los paquetes de nivel superior.
Paul Bissex

6

Puede usar brew list | grep 'package-name'o si está buscando un paquete específico.
brew list 'package-name'También funciona y proporciona información adicional.