
brew
어떤 패키지가 특정 파일을 제공하는지 알아낼 수 있는 방법이 있나요 (예: apt-file
Ubuntu 또는 pkgfile
/ pacman -F
Arch에서)?
로컬에 설치된 패키지가 내 시스템의 파일을 소유하는지 쿼리하는 것에 대해 말하는 것이 아닙니다. 설치해야 하는 특정 파일이 있고( /usr/local/lib/libboost_python.dylib
구체적으로) 해당 파일을 제공하는 원격 패키지가 무엇인지 알고 싶습니다.
답변1
없기. Homebrew에는 패키지 설치가 허용되거나 예상되는 파일 목록이 유지되지 않습니다.
답변2
이 문서에 명시된 바와 같이답변ls -l /usr/local//lib/whatever
당신은 심볼릭 링크가 가리키는 곳을 확인하고 볼 수 있습니다 .
답변3
특정 파일을 검색하는 기본 제공 명령은 없지만 및 brew
를 조합하여 사용하여 답을 얻을 수 있습니다. 시간이 좀 걸리지만 정리 작업을 하고 이런 종류의 쿼리에 두 번 이상 응답해야 하는 경우에는 제가 가끔 했던 작업을 수행할 수 있습니다. 즉, 패키지별로 파일 카탈로그를 만듭니다.brew list
brew list <formula>
#!/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
이 스크립트의 출력을 파일로 리디렉션하면 이를 사용하여 관심 있는 파일을 제공하는 패키지를 검색할 수 있습니다.
답변4
bin
정확히 이 목적을 위해 내 디렉토리에 있는 한 줄의 내용은 다음과 같습니다 .
$ cat ~/bin/brewpkg
#!/bin/bash
which -s $1 ; if [ $? -eq 0 ] ; then ls -lF `which $1` | sed -n 's/^.*\/Cellar\/\([^\/]\{1,\}\)\/.*$/\1/ p' ; fi