
¿Hay alguna manera de averiguar qué brew
paquete proporciona un archivo determinado (como apt-file
en Ubuntu o pkgfile
/ pacman -F
en Arch)?
No estoy hablando de consultar qué paquete instalado localmente posee un archivo en mi sistema, tengo un archivo en particular que necesito instalar ( /usr/local/lib/libboost_python.dylib
para ser específico) y quiero saber qué paquete remoto proporcionaría ese archivo.
Respuesta1
No hay. Nada en Homebrew mantiene una lista de archivos que un paquete puede o espera instalar.
Respuesta2
Como se afirma en esterespuestapuedes hacerlo ls -l /usr/local//lib/whatever
y ver hacia dónde apunta el enlace simbólico.
Respuesta3
Aunque no hay un comando integrado brew
para buscar un archivo específico, puedes usar una combinación de brew list
y brew list <formula>
para obtener la respuesta. Lleva un tiempo, pero si estás haciendo una limpieza y tienes que responder este tipo de consulta más de una vez, puedes hacer lo que yo he hecho algunas veces: crear un catálogo de archivos por paquete:
#!/bin/sh
# make a catalog of Homebrew-installed packages by package
brew list --formula |\
while read formula; do
brew list $formula |\
while read file; do
echo -e "$formula\t$file" # need -e to expand \t
done
done
Si redirige la salida de este script a un archivo, puede usarlo para buscar el paquete que proporciona el archivo de interés.
Respuesta4
Aquí está la frase que tengo en mi bin
directorio exactamente para este propósito:
$ cat ~/bin/brewpkg
#!/bin/bash
which -s $1 ; if [ $? -eq 0 ] ; then ls -lF `which $1` | sed -n 's/^.*\/Cellar\/\([^\/]\{1,\}\)\/.*$/\1/ p' ; fi