¿Cómo determinar qué paquete de preparación proporciona un archivo determinado?

¿Cómo determinar qué paquete de preparación proporciona un archivo determinado?

¿Hay alguna manera de averiguar qué brewpaquete proporciona un archivo determinado (como apt-fileen Ubuntu o pkgfile/ pacman -Fen 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.dylibpara 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/whatevery ver hacia dónde apunta el enlace simbólico.

Respuesta3

Aunque no hay un comando integrado brewpara buscar un archivo específico, puedes usar una combinación de brew listy 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 bindirectorio 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

información relacionada