วิธีใช้ Homebrew เพื่อติดตั้งไฟล์เก็บถาวรในเครื่อง


16

ฉันพยายามใช้ Homebrew เพื่อติดตั้ง wget แต่มีบางอย่างเกิดขึ้นที่การดาวน์โหลดเสียหายเสมอ สิ่งนี้เกิดขึ้นกับแพ็คเกจทั้งหมดไม่ใช่แค่เพียง wget ฉันสามารถดาวน์โหลด tar.gz ได้จากเบราว์เซอร์ ฉันสามารถใช้ Homebrew เพื่อติดตั้งไฟล์เก็บถาวรที่ดาวน์โหลดในเครื่องได้หรือไม่ บางอย่างเช่น:

brew install wget-1.14.tar.gz 

2
ดูเหมือนจะแปลกมาก ฉันไม่รู้ว่าคุณสามารถทำได้ แต่ดูเหมือนว่ามีอะไรบางอย่างที่ร้ายแรงกว่ากำลังเกิดขึ้น คุณเคยลองวิ่งbrew doctorหรือยัง?
boyfarrell

หากคุณมีเก็บแน่นอนที่ Homebrew ของการคาดหวังว่าคุณสามารถวางไว้ใน ~ / Library / แคช / Homebrew brew installแล้วลอง แต่นี่มันลึกลับ วิธีการเกี่ยวกับการโพสต์ผลลัพธ์ของbrew installเมื่อคุณลองวิธีปกติ?
echristopherson

@echristopherson วิธีการของคุณทำงาน หากคุณโพสต์ไว้เป็นคำตอบฉันจะยอมรับ
MD6380

ฉันรู้ว่าทำไมมันไม่ทำงาน หมอเบียร์ไม่แสดงปัญหาใด ๆ ดูเหมือนว่าพร็อกซี HTTP ที่ใช้ไม่อนุญาตให้ดาวน์โหลด
MD6380

สิ่งที่ควรทราบก็คือมีประโยชน์เมื่อมีกระจกหลายบานและกระจกหนึ่งในสูตรไม่ทำงาน คุณสามารถตั้งค่า SourceForge mirror ที่แตกต่างกันผ่านตัวแปรสภาพแวดล้อม แต่สำหรับคนอื่น ๆ โซลูชันที่ยอมรับนั้นมีประโยชน์มาก
Dan

คำตอบ:


21

หาก Homebrew มีสูตรอยู่แล้ว (ใน / usr / local / Library / Formula) และคุณมีไฟล์เก็บถาวรที่แน่นอนที่สูตรต้องการ (เช่นชื่อไฟล์เดียวกันและเนื้อหาเดียวกันตามที่กำหนดโดย SHA1 หรือประเภทแฮชที่สูตรใช้ ) คุณสามารถใส่ไฟล์เก็บถาวรใน ~ / Library / Caches / Homebrew และลองbrew install formula_name(แทนที่ชื่อที่ถูกต้องสำหรับformula_nameแน่นอน)


2
Homebrewโฟลเดอร์ไม่ได้อยู่ แต่การทำงานหลังจากที่ฉันmkdirหนึ่ง
eccstartup

brew installไม่ได้ผลสำหรับฉัน แต่brew install <package>ทำเช่นนั้น ขอบคุณ!
Zayne S Halsall

โอ้ฉันทิ้งไปโดยปริยาย ฉันกำลังแก้ไขสิ่งนั้นในคำตอบของฉัน
echristopherson

7
$ brew install -f wget-1.14.tar.gz

1
แพ็คเกจที่แตกต่างกัน แต่มีความต้องการเหมือนกัน - f ไม่ปรากฏขึ้นให้ใช้งาน: zaynehalsall@mbp:~$ brew install -f Library/Caches/Homebrew/pwgen-2.07.tar.gz Error: No available formula with the name "Library/Caches/Homebrew/pwgen-2.07.tar.gz" ==> Searching for similarly named formulae... Error: No similarly named formulae found. ==> Searching taps... Error: No formulae found in taps. zaynehalsall@mbp:~$
Zayne S Halsall

1
เกิดข้อผิดพลาดเดียวกัน
Ben

4

ห้าปีและเปลี่ยนสายไปงานเลี้ยง แต่:

เคล็ดลับคือการย้ายที่เก็บลงในแคชของชง แคชดังกล่าวอาจเป็นปัญหาในการค้นหาด้วยมือ โชคดีที่คุณไม่จำเป็นต้อง brew --cacheเพียงแค่ถามชงตัวเองด้วย

สิ่งนี้ช่วยให้คุณทำสิ่งต่อไปนี้ใน bash:

mv wget-1.14.tar.gz $(brew --cache)

ผลัดกันในปลา:

mv wget-1.14.tar.gz (brew --cache)

หลังจากนั้นการรันbrew install wgetจะส่งผลให้เกิดการประกาศว่ากำลังดาวน์โหลดไฟล์เก็บถาวรตามด้วยการตระหนักว่าไฟล์เก็บถาวรนั้นเป็น "ดาวน์โหลดแล้ว" และทุกอย่างดำเนินไปอย่างราบรื่นจากที่นั่น


2

มันเป็นไปได้ก่อนดาวน์โหลดไฟล์สำหรับสูตร brew --cache -s <formula>แต่คุณจะต้องมีชื่อไฟล์แคชที่ถูกต้องที่สามารถสร้างขึ้นโดยใช้

ตัวอย่างเช่นสำหรับสูตร Erlang brew --cache -s erlangจะพิมพ์ชื่อที่ถูกต้องของการดาวน์โหลดแคช ซึ่งหมายความว่าแทนที่จะเปลี่ยนชื่อสูตรด้วยตนเองคุณสามารถเรียกใช้:

wget source-version.tar.gz
mv source-version.tar.gz $(brew --cache -s <formula>)

สิ่งนี้ใช้ได้กับเวอร์ชันปัจจุบันของ formual - แต่ถ้าฉันต้องการติดตั้งโหนด 11 แทนโหนดปัจจุบัน 12, brew --cache -s node ยังให้เส้นทางแก่โหนด 12 ฉันรู้หรือไม่ว่าฉันสามารถบังคับ Homebrew ให้ ติดตั้งรุ่นเก่ากว่าหรือไม่
John Y

นี่คืออันที่ทำงานกับชงล่าสุดรุ่น 2.2.1
LnxSlck

2

ตามนี้ :

ไม่ได้จริงๆโดยไม่ต้องแก้ไขไฟล์สูตร

หากไฟล์เก็บถาวรในเครื่องของคุณเป็นไฟล์ที่สร้างล่วงหน้าหรือที่รู้จักว่า 'ขวด' ใน Brew นี่คือสิ่งที่ฉันขุดออกมา:

ขวดชงเป็นรุ่นที่เกี่ยวกับ MacOS

ยกตัวอย่าง pkg-config

ที่นี่ที่  https://bintray.com/homebrew/bottles/pkg-config#files/จะแสดงไฟล์ที่แตกต่างกันสำหรับเวอร์ชั่น MacOS ที่แตกต่างกัน

หลังจากดาวน์โหลดไฟล์ที่ถูกต้องคุณจะต้องย้ายไฟล์ไปยังพา ธ ที่ถูกต้องซึ่งสามารถสร้างได้ brew --cache --force-bottle pkg-config

สำหรับ 10.14: มันเป็นเช่น:

/Users/username/Library/Caches/Homebrew/downloads/dd6c78ec64b7c09961ccdb1bf873b5852fd93783cf25ae9b9399c5896a420462--pkg-config-0.29.2.mojave.bottle.tar.gz

สำหรับ 10.13: มันเป็นเช่น:

/Users/username/Library/Caches/Homebrew/downloads/8b865a8ad8179d4a45289cab9267cc5e3a6153d06432d90cf1745caf5d92a64d--pkg-config-0.29.2.high_sierra.bottle.tar.gz

brew install pkg-configหลังจากนั้นชงสามารถหาไฟล์ที่เก็บไว้ชั่วคราวเมื่อคุณเรียกใช้ มิฉะนั้นจะยังคงดาวน์โหลดจาก URL


เพียงแค่ย้ายไฟล์ไปที่ $ (brew --cache) จะไม่ทำงานอีกต่อไปอย่างน้อยสำหรับ brew ปัจจุบัน (เวอร์ชั่น 2.19 ในกรณีของฉัน)


หากไฟล์โลคัลคือซอร์สโค้ดไม่ใช่ขวด ย้ายไปยัง $ (ชง --cache -s สูตร) --build-from-sourceจะทำงานถ้าคุณบังคับให้ติดตั้งกับตัวเลือก
gebitang

1

ตามhttps://github.com/Homebrew/homebrew-cask/issues/21346

แต่ตอนนี้ตำแหน่งของแหล่งข้อมูลเปลี่ยนไปคุณสามารถค้นหา download_strategy.rb ในคอมพิวเตอร์ของคุณได้

ตำแหน่งของฉันคือ "/ usr / local / Homebrew / Library / Homebrew" ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นล็อกไฟล์ซอร์ส rb (หรือจะใช้เครื่องมือ git เพื่อกู้คืนตัวเอง)

เมื่อพยายามใช้ "ชงติดตั้ง xxx" ในเทอร์มินัลคุณจะได้รับตำแหน่งแคชไฟล์ทั้งหมด: ป้อนคำอธิบายรูปภาพที่นี่


0

Brew ปรับปรุงกลยุทธ์การแคชคุณต้องใส่ไฟล์ที่ดาวน์โหลดมา~/Library/Caches/Homebrew/downloadsและปฏิบัติตามหลักการตั้งชื่อ

คุณสามารถให้ชงเริ่มดาวน์โหลดแล้วคุณจะเห็น.incompleteไฟล์เช่นนั้นคุณสามารถเปลี่ยนชื่อไฟล์ของคุณลงใน544b4d734091aeb6482dbe2496a8ff223d15bc970fa330d3dccbb0bb6fb0e13e--qemu-4.2.0.catalina.bottle.tar.gz.incomplete544b4d734091aeb6482dbe2496a8ff223d15bc970fa330d3dccbb0bb6fb0e13e--qemu-4.2.0.catalina.bottle.tar.gz

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