주어진 파일을 제공하는 추출 패키지를 결정하는 방법은 무엇입니까? (예 : apt-file우분투 나

어떤 brew파일이 주어진 파일을 제공 하는지 알 수있는 방법이 있습니까 (예 : apt-file우분투 나 pkgfile아치)?

로컬로 설치된 패키지가 내 시스템에서 파일을 소유하는 쿼리에 대해 이야기하는 것이 아니라 특정 파일을 설치해야 /usr/local/lib/libboost_python.dylib하며 해당 파일을 제공 할 원격 패키지가 무엇인지 알고 싶습니다.



답변

없기. Homebrew의 어떤 것도 패키지가 설치되거나 설치 될 것으로 예상되는 파일 목록을 유지하지 않습니다.


답변

답변에 명시된 것처럼 ls -l /usr/local//lib/whatever심볼릭 링크가 가리키는 위치를 수행 하고 볼 수 있습니다 .


답변

파일을 제공 할 수있는 공개 homebrew 패키지를 찾을 수있는 도구와 같은 apt-search 는 없지만 많은 brew 패키지는 Linux 또는 unix 대응을 기반으로합니다. 데비안 패키지 웹 사이트를 검색하여 필요한 패키지를 찾을 수 있습니다.

goocanvas.pc 파일을 제공하는 패키지를 찾는 예

https://packages.debian.org/search?suite=default§ion=all&arch=any&searchon=contents&keywords=goocanvas.pc

libgoocanvas-dev를 반환

brew search에 대한 검색 결과가 없습니다 libgoocanvas-DEV 또는 libgoocanvas을 하지만, 그것은 가지고 goocanvas의 패키지를.

ineed다음을 사용하여 debian.org에서 목록을 반환 하는 명령 을 다음과 같이 정의 할 수 있습니다 ineed goocanvas.pc.

ineed() {
echo -en $(echo \
    $(curl -s "https://packages.debian.org/search?suite=default&section=all&arch=any&searchon=contents&keywords=$1") \
       | sed 's%</*tr>%\\n%g') \
    | grep 'class="file"' \
    | sed 's/<[^>]*>//g' \
    | column -t \
    | grep --color -i -w "$1"
}

답변

이없는 불구가 내장 된 brew특정 파일을 검색하는 명령, 당신의 조합을 사용할 수 있습니다 brew listbrew list <formula>답을 얻을 수 있습니다. 시간이 걸리지 만 정리를 수행하고 이런 종류의 쿼리에 두 번 이상 응답해야하는 경우 때때로 수행 한 작업을 수행 할 수 있습니다. 패키지별로 파일 카탈로그 만들기 :

#!/bin/sh
# make a catalog of Homebrew-installed packages by package
brew list |\
  while read formula; do
    brew list $formula |\
    while read file; do
      echo -e "$formula\t$file" # need -e to expand \t
    done
done

이 스크립트의 출력을 파일로 재 지정하면이를 사용하여 관심있는 파일을 제공하는 패키지를 검색 할 수 있습니다.


답변

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