วิธีการตรวจสอบชุดชงที่ให้ไฟล์ที่กำหนด?


16

มีวิธีการคิดออกbrewแพคเกจที่ให้ไฟล์ที่กำหนด (เช่นapt-fileใน Ubuntu หรือpkgfileบน Arch)?

ฉันไม่ได้พูดถึงการสอบถามแพคเกจที่ติดตั้งในเครื่องซึ่งเป็นเจ้าของไฟล์ในระบบของฉันฉันมีไฟล์เฉพาะที่ฉันต้องการติดตั้ง ( /usr/local/lib/libboost_python.dylibเป็นเฉพาะ) และต้องการทราบว่าแพ็คเกจระยะไกลใดที่จะให้ไฟล์นั้น


กลับกลายเป็นไฟล์ที่มีให้โดยตราบใดที่คุณกำหนดค่าด้วยboost --with-pythonจะยังคงมีความสุขที่จะทราบว่ามีวิธีที่จะแบบสอบถามซึ่งไฟล์จะถูกจัดไว้ให้โดยที่ไฟล์ ...
mgalgs

FWIW มีให้ในตอนนี้boost-pythonแทน
Tim Smith

คำตอบ:


8

นั่นไม่ใช่. ไม่มีอะไรใน Homebrew ที่เก็บรักษารายการไฟล์ที่อนุญาตหรือติดตั้งแพคเกจ



4

ในขณะที่ไม่มีเครื่องมือapt-searchเช่นที่อนุญาตให้หนึ่งค้นหาแพคเกจโฮมบรูว์สาธารณะที่สามารถให้ไฟล์ได้ แต่แพ็คเกจการชงจำนวนมากขึ้นอยู่กับ linux หรือ unix คุณสามารถค้นหาเว็บไซต์แพ็คเกจ Debian เพื่อค้นหาแพ็คเกจที่ต้องการ

ตัวอย่างการค้นหาแพ็คเกจที่ให้ไฟล์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"
}

0

แม้ว่าจะไม่มีbrewคำสั่งในตัวเพื่อค้นหาไฟล์เฉพาะคุณสามารถใช้การรวมกันbrew listและbrew 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

หากคุณเปลี่ยนเส้นทางการส่งออกของสคริปต์นี้ไปยังไฟล์คุณสามารถใช้มันเพื่อค้นหาแพคเกจที่ให้ไฟล์ที่น่าสนใจ


สิ่งนี้ดี แต่ค้นหาแพ็คเกจที่ติดตั้งในปัจจุบัน คำถามกำลังถามเกี่ยวกับการค้นหาแพ็คเกจที่ไม่ได้ติดตั้ง
Burhan Ali

-1

นี่คือหนึ่งซับที่ฉันมีใน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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.