ฉันจะหาเส้นทางของแพ็คเกจที่ติดตั้งผ่าน Brew ได้ที่ไหน


142

ฉันติดตั้งแพคเกจบางอย่างผ่านทางชง แต่ฉันไม่สามารถหาพวกเขาอยู่ที่ไหน

ฉันไม่สามารถเข้าถึงได้โดยพิมพ์hpingบนเทอร์มินัล

% brew install hping
(git)-[master] 
Warning: hping-3.20051105 already installed

hping ของฉันถูกติดตั้งใน/usr/local/Cellar/hping/3.20051105/sbin/hping
Mateusz Szlosek

ผมมีปัญหาเดียวกันกับdaemonize, นี้คำตอบช่วยให้ฉันเข้าใจ daemonize ที่ติดตั้งใน/usr/local/sbinที่ไม่ได้อยู่ในเส้นทาง
jakub.g

คำตอบ:


178

ใช้สิ่งต่อไปนี้เพื่อแสดงเส้นทางการติดตั้งของแพ็คเกจ:

brew info hping

ตัวอย่างผลลัพธ์:

pcre: stable 8.35 (bottled)
http://www.pcre.org/
/usr/local/Cellar/pcre/8.35 (146 files, 5.8M) *
  Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/pcre.rb
==> Options
--universal
    Build a universal binary

9
เป็นไปได้ที่จะได้รับเส้นทางเท่านั้นหรือไม่ ในกรณีของฉันฉันต้องการใช้เสียงดังกราวจาก llvm และหลังเสียง "ชงติดตั้ง llvm" เสียงดังกราวยังคงเป็นของแอปเปิ้ล แต่หนึ่งจากไบนารี llvm คือสิ่งที่ฉันต้องการ
okutane

1
BTW brew doctorอาจช่วยให้คุณเข้าใจปัญหาเช่นกัน
jakub.g

3
@okutane คุณจะต้องรวบรวมเส้นทางด้วยตัวเอง คุณสามารถทำได้echo "$(brew --cellar llvm)/$(brew list --versions llvm | tr ' ' '\n' | tail -1)/bin/clang"
nburr

ขึ้นอยู่กับความต้องการเฉพาะของคุณbrew --prefix hping(จากคำตอบ @ capripot) อาจใช้เล่ห์เหลี่ยม
waldyrious

24

/ usr / local / Cellar เป็นตำแหน่งเริ่มต้นใน OS X คุณจะเห็นไดเรกทอรีย่อยที่นั่นสำหรับสูตรที่ติดตั้งทั้งหมดของคุณ ...


20

หากต้องการทราบว่าติดตั้งสูตรของคุณอยู่ที่ใด brew --prefix hping

นอกจากนี้คุณยังสามารถเชื่อมโยงhpingไบนารีของคุณโดยทำbrew unlink hping && brew link hping

บางทีคุณอาจจะยัง$PATHไม่ได้กำหนดชัดเจน รายการที่กำหนดโดยecho $PATHมีผลลัพธ์ที่กำหนดโดยecho $(brew --prefix)'/bin:'$(brew --prefix)'/sbin'? /usr/binเส้นทางนี้ควรจะไปสู่จุดเริ่มต้นของรายการที่จะจัดลำดับความสำคัญมากกว่าไบนารีของระบบแน่นอนก่อน

หากต้องการทำเช่นนั้นคุณสามารถเพิ่มได้ในตอนท้ายของ~/.zshrcหรือ~/.bashrc:

export PATH=$(brew --prefix)/bin:$(brew --prefix)/sbin:$PATH

ดังนั้นหลังจากเปิดเทอร์มินัลใหม่หรือทำsource ~/.zshrcแล้วคุณจะสามารถสะท้อนเส้นทางที่ถูกต้องของคุณเป็น:

$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin

ขอบคุณbrew --prefix <command>เป็นสิ่งที่ฉันต้องการ
วาลดีเรีย

6

โดยปกติการติดตั้งแพคเกจเข้าhomebrew /usr/local/binดังนั้นคุณต้องตรวจสอบว่า PATH ของคุณมีไดเรกทอรีนั้นดังนี้:

echo $PATH

ลองใช้งานดู

brew doctor

เพื่อให้แน่ใจว่าการตั้งค่าของคุณถูกต้อง หาก/usr/local/binไม่ได้อยู่ในเส้นทางของคุณคุณต้องแก้ไข~/.profileและเพิ่มบรรทัดดังนี้:

export PATH=$PATH:/usr/local/bin

จากนั้นเริ่มต้น Terminal ใหม่ (เพื่ออ่านโปรไฟล์ล็อกอินของคุณอีกครั้ง) และลองอีกครั้ง

หากสิ่งที่ล้มเหลวจะต้องติดตั้งที่อื่น คุณสามารถค้นหาโดยเรียกใช้คำสั่งเช่นนี้:

sudo find / -name hping -type f

2
นี่คือ symlink แพคเกจจริงอยู่ใน/usr/local/Cellarขณะที่ @PapaStanley ชี้ให้เห็น
Steve

@ ทำไมมันถึงเป็นเช่นนั้นเมื่อฉันทำls -ld /usr/local/binมันดูเหมือนไดเรกทอรีปกติ?
barlop


1

hping ต้องการสิทธิ์พิเศษในการรัน

คุณอาจต้องเพิ่ม / usr / local / sbin ใน PATH ของคุณ

เมื่อฉันวิ่งชงแพทย์:

Warning: Homebrew's sbin was not found in your PATH but you have installed
formulae that put executables in /usr/local/sbin.
Consider setting the PATH for example like so
    echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile

1

หากต้องการค้นหาไดเร็กทอรีการติดตั้งพื้นฐานสำหรับ Homebrew ให้ใช้หนึ่งในคำสั่งต่อไปนี้:

brew --prefix
brew --cellar

หลังส่งกลับเส้นทางของCellarโฟลเดอร์ของคุณโดยเฉพาะ


0

ฉันขอแนะนำให้เพิ่มบรรทัดต่อไปนี้ใน~/.bash_profile(หรือไฟล์การกำหนดค่าที่เทียบเท่าหากคุณใช้เชลล์ที่แตกต่างกัน):

export HOMEBREW_CASK_OPTS="--appdir=/Applications"

0

ฉันติดตั้งแพคเกจบางอย่างผ่านทางชง แต่ฉันไม่สามารถหาพวกเขาอยู่ที่ไหน

ดูเหมือนว่า homebrew ต้องมีสิ่งหนึ่งที่ชัดเจนกับสิ่งต่าง ๆ โชคดีที่การหลีกเลี่ยงการใช้งานเล็กน้อยbrew --prefixสามารถทำให้นี่เป็นเกมง่ายๆสำหรับผู้ที่ต้องการค้นหาเส้นทางสำหรับยูทิลิตี pkg-config เช่น

PKG_CONFIG_PATH=`brew --prefix hping`/lib/pkgconfig/ pkg-config --cflags hping

(ยกเว้นสิ่งนี้จะไม่ทำงานต่อไปเนื่องจากดูเหมือนว่า hping ไม่ได้มาพร้อมกับ hping.pc .. แม้ว่าในกรณีที่ผู้ดูแลแพคเกจใส่ไฟล์. pc เคล็ดลับนี้มีประโยชน์)


0

หากใครบางคนกำลังมองหาเส้นทางที่แท้จริงของแพ็คเกจ

ในกรณีของฉันbrew --cellar opencv3ให้/usr/local/Cellar/opencv

แต่find /usr/local/Cellar/ -type d -name "*opencv*" -maxdepth 1ให้

/usr/local/Cellar//opencv3(ซึ่งเป็น/usr/local/Cellar/opencv3จริง)

ส่วนหัว:

/usr/local/Cellar/opencv3/3.4.1_1/include/

libs:

/usr/local/Cellar/opencv3/3.4.1_1/lib/


0

ฉันสามารถหาตัวเลือก CLI โดยตรงbrewได้เพื่อรับเส้นทางแบบเต็มไปยังสูตรที่ติดตั้งอยู่ในปัจจุบัน แต่วิธีนี้จะใช้ได้ตราบใดที่คุณใช้ bash:

echo $(brew --cellar asciidoctor)/$(brew info --json asciidoctor | jq -r '.[0].installed[0].version')
# /usr/local/Cellar/asciidoctor/1.5.8
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.