특정 파일을 제공하는 추출 패키지를 확인하는 방법은 무엇입니까?

특정 파일을 제공하는 추출 패키지를 확인하는 방법은 무엇입니까?

brew어떤 패키지가 특정 파일을 제공하는지 알아낼 수 있는 방법이 있나요 (예: apt-fileUbuntu 또는 pkgfile/ pacman -FArch에서)?

로컬에 설치된 패키지가 내 시스템의 파일을 소유하는지 쿼리하는 것에 대해 말하는 것이 아닙니다. 설치해야 하는 특정 파일이 있고( /usr/local/lib/libboost_python.dylib구체적으로) 해당 파일을 제공하는 원격 패키지가 무엇인지 알고 싶습니다.

답변1

없기. Homebrew에는 패키지 설치가 허용되거나 예상되는 파일 목록이 유지되지 않습니다.

답변2

이 문서에 명시된 바와 같이답변ls -l /usr/local//lib/whatever당신은 심볼릭 링크가 가리키는 곳을 확인하고 볼 수 있습니다 .

답변3

특정 파일을 검색하는 기본 제공 명령은 없지만 및 brew를 조합하여 사용하여 답을 얻을 수 있습니다. 시간이 좀 걸리지만 정리 작업을 하고 이런 종류의 쿼리에 두 번 이상 응답해야 하는 경우에는 제가 가끔 했던 작업을 수행할 수 있습니다. 즉, 패키지별로 파일 카탈로그를 만듭니다.brew listbrew 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

관련 정보