รายการแพคเกจทั้งหมดที่ติดตั้งโดยใช้ Homebrew


440

เป็นไปได้หรือไม่และฉันจะรับรายการแพ็คเกจทั้งหมดที่ติดตั้งบน Mac ของฉันโดยใช้ได้Homebrewอย่างไร ฉันไม่สนใจแพ็คเกจที่ติดตั้งนอก Homebrew

คำตอบ:


557

brew list และ brew cask list

การรันbrew listจะแสดงรายการแพ็คเกจ Homebrew ทั้งหมดที่คุณติดตั้ง

นอกจากนี้brew cask listจะให้รายการที่ติดตั้งโดยใช้Homebrew ถัง

รายการชง


2
หากคุณมีรายการนี้ในไฟล์ txt คุณจะติดตั้งทั้งหมดอย่างไร brew install < list.txtดูเหมือนจะไม่ทำงาน
Jonathan

26
@Jonathan xargs brew install < list.txtอย่าลังเลที่จะถามคำถามแยกต่างหากสำหรับรายละเอียดเพิ่มเติมหรือชี้แจง
grg

3
@grgarside - พร้อมรับคำบอกรักสถานี คุณยินดีที่จะแชร์ไฟล์กำหนดค่าของคุณเพื่อให้ระบบแจ้งให้ฉันเป็นอย่างนั้นหรือไม่?
Kaushik Gopal

2
@ Kaushik ในที่สุดฉันก็ได้เขียนบล็อกโพสต์เกี่ยวกับการตั้งค่าเทอร์มินัล / เชลล์ - รู้สึกฟรีเพื่อถามคำถามที่นั่น
grg

1
@ Jonathanbrew install $(< list.txt )
ฟิล Pirozhkov

274

brew leavesแสดงให้คุณเห็นแพ็คเกจระดับบนสุดทั้งหมด นั่นคือแพ็คเกจที่ไม่ขึ้นต่อกัน สิ่งนี้น่าสนใจที่สุดหากคุณใช้รายการเพื่อติดตั้งแพ็คเกจใหม่


3
คำตอบที่ดี คุณรู้วิธีรับรายชื่อแพ็คเกจที่ติดตั้งโดยผู้ใช้หรือไม่? สิ่งนี้อาจแตกต่างleavesจาก
สตีเวนชอว์

ใช่เช่นjavaไม่ได้อยู่ในรายการleavesเพราะมันขึ้นอยู่กับโครงการอื่นแม้ว่าฉันจะติดตั้งด้วยตัวเอง
ซาดมาลิก

60

brew bundleอาจจะน่าสนใจถ้าคุณถามเพราะคุณต้องการจัดการการติดตั้ง Brew ของคุณ ซึ่งรวมถึงถังซึ่งbrew listไม่ได้ มันมีจุดมุ่งหมายที่จะมีการตั้งค่า Homebrew ซ้ำ

# creates Brewfile in the current directory from currently-installed packages
brew bundle dump
# edit Brewfile
# install everything from the Brewfile
brew bundle

คุณสามารถใช้การ--globalตั้งค่าสถานะเพื่อดำเนินการกับของคุณ~/Brewfileและ-fเพื่อบังคับให้เขียนทับไฟล์ที่มีอยู่ของคุณ (สำหรับการติดตั้งสิ่งนี้จะบังคับให้ถอนการติดตั้งแพ็กเกจที่ไม่อยู่ในรายการ)


มันยอดเยี่ยมมาก! ฉันไม่รู้ว่าสิ่งนี้มีอยู่จริง ขอบคุณ. ฉันแค่หวังว่ามันจะเหมือนbrew leavesและละทิ้งแพ็คเกจที่คุณไม่ได้ติดตั้งโดยตรง แต่ได้รับการอ้างอิงเท่านั้น ในอนาคตแพคเกจอาจเปลี่ยนการอ้างอิง แต่คุณจะติดตั้งต่อไปและไม่จำเป็นต้องใช้
Bruno Bronosky

ใช่. ดูเหมือนว่าทุกคนจัดการแพคเกจผ่านขั้นตอนนี้ไม่แตกต่างทั้งสอง
Sam Brightman

1
การถ่ายโอนข้อมูลล่าสุดของฉันแสดงว่าbundleตอนนี้ไม่รวมการพึ่งพา มีการเปลี่ยนแปลงอื่น ๆ เช่นลักษณะคำพูดและการสั่งซื้อที่ทำให้เข้าใจความแตกต่างได้ยากขึ้น แต่โดยรวมแล้วดูเหมือนว่าอย่างน้อยห้องสมุดบางส่วนจะหายไปจากการBrewfileติดตั้ง
Sam Brightman

20

brew listคำสั่งที่ดำเนินการจะแสดงรายการเรียงลำดับตามตัวอักษรที่เรียบง่ายของแพ็คเกจที่ติดตั้งทั้งหมด

อย่างไรก็ตามแพคเกจที่จำเป็นต่างๆ (การอ้างอิง) จะได้รับการติดตั้งโดยอัตโนมัติเมื่อติดตั้งแพคเกจโดยใช้ Homebrew เป็นไปได้ที่จะดูรายการของแพ็กเกจที่ติดตั้งทั้งหมดเป็นแผนผังการพึ่งพาที่จัดรูปแบบไว้อย่างดี หากต้องการดูให้รันคำสั่งต่อไปนี้:

brew deps --tree --installed

ตัวอย่างผลลัพธ์ที่แสดงด้านล่าง:

gdbm

openssl

python
├── gdbm
├── openssl
├── readline
├── sqlite
│   └── readline
└── xz

readline

sqlite
└── readline

xz

แพ็คเกจที่แสดงรายการอิสระ (เช่นgdbmและopensslในตัวอย่างผลลัพธ์ด้านบน) ไม่มีการขึ้นต่อกัน แพ็คเกจที่แสดงเป็นส่วนหนึ่งของโครงสร้างต้นไม้มีการขึ้นต่อกันของรายการที่ระดับต่ำกว่าทันที (เช่นแพ็คเกจsqliteต้องการreadlineให้ติดตั้งแพ็คเกจ) แพ็กเกจที่แสดงรายการที่โหนดใบไม้ในโครงสร้างแบบต้นไม้ไม่มีการพึ่งพา

การแสดงภาพในโครงสร้างต้นไม้สามารถช่วยในการกำจัดแพ็คเกจที่ไม่จำเป็นได้อย่างง่ายดาย


1
brew leavesคำสั่งดังกล่าวข้างต้นจะเป็นประโยชน์ในเรื่องนี้; มันแสดงเฉพาะแพ็คเกจระดับบนสุด
พอลบิสเซ็ก

6

คุณสามารถใช้brew list | grep 'package-name'หรือหากกำลังมองหาแพคเกจเฉพาะ
brew list 'package-name'ยังใช้งานได้และให้ข้อมูลเพิ่มเติม

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