ข้อดีและข้อเสียของ MacPort, Fink และ Homebrew คืออะไร


154

ฉันเพิ่งจะย้ายจาก Ubuntu Linux ไปยัง Mac และทุกอย่างมันใหม่และฉันเรียนรู้สิ่งต่างๆมากมาย

บน Linux ฉันมีความสามารถในการจัดการแพกเกจซอฟต์แวร์ที่ยอดเยี่ยม ฉันหาทางเลือกบน Mac และพบเกี่ยวกับ MacPorts, Fink และ Homebrew

ฉันจะใช้คอมพิวเตอร์เครื่องนี้เป็นหลักในการพัฒนาแอปพลิเคชั่น Ruby on Rails

ดังนั้นความแตกต่างระหว่างพวกเขาคืออะไร? อัพไซด์และดาวน์ด์คืออะไร สิ่งใดที่ได้รับการดูแลอย่างดีที่สุดและมีแพ็คเกจเพิ่มเติม


5
ฉันแก้ไขชื่อของคุณเพื่อให้ตรงกับคำถามจริงของคุณ ในไซต์สแต็กส่วนใหญ่แลกเปลี่ยนคำถามที่ขอให้ "ดีที่สุด" ถูกดึงออกมา
Loïc Wolff

1
ทำไมคุณต้องการสิ่งเหล่านี้จะไม่เพียงพออัญมณีทับทิม?
user151019

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสาเหตุที่ทำให้รายการซ้ำไม่เลวเสมอไป: apple.stackexchange.com/questions/11461/ …และยังมีทางเลือกอื่นอีกสองสามรายการ
cregox

ไม่เคยใช้มันด้วยตัวเอง แต่บางทีการเปรียบเทียบกับpkginก็มีประโยชน์เช่นกัน
Dennis

คำตอบ:


118

แน่นอน Homebrew ฉันเริ่มต้นด้วย Fink จากนั้นเปลี่ยนเป็น MacPorts (มีความสุข) แล้วเปลี่ยนเป็น Homebrew (มากขึ้นและมีความสุขมากขึ้น) นี่คือเหตุผลของฉันสำหรับการใช้งานแต่ละรายการ (รายการโปรหากคุณต้องการ):

ตำรวจ

  • Apt-based - รู้สึกเหมือนอยู่บ้านถ้าคุณมาจากสภาพแวดล้อมแบบ Debian
  • แพคเกจไบนารี - แพคเกจมีให้บริการในรูปแบบไบนารีดังนั้นจึงไม่มีเวลารวบรวมนาน แม้ว่าในทางปฏิบัติแล้วฉันพบว่าไบนารีที่รวบรวมไว้นั้นล้าสมัยแล้วและฉันก็ต้องรวบรวมข้อมูลสำหรับระบบของฉันอยู่ดี
  • การเลือกแพ็คเกจที่เหมาะสม

MacPorts

  • การเลือกแพ็คเกจ / พอร์ตที่ใหญ่ที่สุด
  • โดยทั่วไปแล้วทันสมัยมาก
  • ระบบสายพันธุ์ที่ดีที่ช่วยให้คุณปรับแต่งการสร้าง
  • ไฟล์พอร์ตที่ง่ายและใช้งานง่าย

Homebrew

  • ทันสมัยมาก
  • การใช้ประโยชน์สูงสุดจากสิ่งที่มาพร้อมกับ OS X ซึ่งแตกต่างจาก Fink หรือ MacPorts คุณไม่จำเป็นต้องสร้าง / ติดตั้ง ruby ​​และไลบรารี่ตั้งแต่เริ่มต้นเพียงติดตั้งเครื่องมือ Ruby-based ขนาดเล็ก
  • ติดตั้งลงใน/usr/localดังนั้นไม่ต้องการให้คุณแก้ไขPATHที่ใดก็ได้
  • ทุกสิ่งที่ผู้ใช้เป็นเจ้าของดังนั้นจึงไม่จำเป็นต้องมีแพ็คเกจใด ๆ ในการเข้าถึงรูทเพื่อติดตั้ง
  • แพคเกจที่ติดตั้งทุกแพคเกจจะถูก sandboxed ไว้ในห้องใต้ดินของตัวเองอย่างสมบูรณ์ดังนั้นคุณจึงไม่มีไฟล์จรจัดในระบบของคุณเพียงแค่ symlink จาก bin, man เป็นต้น
  • ขันอย่างง่ายดายในการสร้างไฟล์สูตรของคุณเอง (เช่น. descriptors แพ็คเกจ)
  • เนื่องจากคุณมาจากพื้นหลังทับทิมอีกอย่างบวกก็คือทุกอย่างเขียนด้วยทับทิมและสูตรทั้งหมดเป็นสคริปต์ทับทิมเรียบง่าย

pkgin

  • ทันสมัยมาก
  • เร็วกว่าการติดตั้งเนื่องจากไบนารีที่คอมไพล์แล้ว
  • ทุกอย่างที่ติดตั้งใน / opt / pkg /
  • ได้รับการสนับสนุนโดยชุมชน pkgsrc และ Joyent
  • รู้จักกันในการทำงานกับ NetBSD, DragonFly BSD, Solaris, Debian, Mac OS X, Minix

https://pkgsrc.joyent.com/install-on-osx/

http://pkgin.net/


33
โปรดทราบว่าสำหรับผู้ผลิตเบียร์ในบ้านคุณสามารถยืนยันได้ว่า "การติดตั้งใน / usr / local" และ "การใช้ประโยชน์จากสิ่งที่มาพร้อมกับ OS X" เป็นปัญหา - พวกเขาเป็นสองเหตุผลหลักที่ฉันใช้ระบบบรรจุภัณฑ์อื่น
user151019

5
เนื่องจาก / usr / local / bin ไม่ได้อยู่ในเส้นทาง Mac OS X ที่เป็นค่าเริ่มต้นแน่นอนว่าคุณต้องทำการปรับเปลี่ยน PATH ของคุณ - คุณต้องทำเพียงครั้งเดียวเนื่องจาก Brew วางไว้ในที่เดียวซึ่งเชื่อมโยงไปยังใหม่ทั้งหมด ถังขยะมันติดตั้ง (ยกเว้น "ถังเท่านั้น" แต่นั่นเสียงที่นี่)
เทอร์รี่ N

5
@ jedd.ahyoung ฉันชอบ macports ที่ใส่ใน / opt / local (fink puts in / sw)
user151019

5
น่าเสียดายที่ homebrew ดูเหมือนจะปฏิเสธการใช้งาน & API บางอย่างมากขึ้นเรื่อย ๆ ซึ่งผู้ดูแลแสดงความไม่สนใจผู้ใช้อย่างชัดเจน Macports ดูเหมือนเป็นทางเลือกที่ดีกว่าเนื่องจากแนวโน้มนี้ดูเหมือนจะแพร่กระจาย homebrew ในทางที่ไม่มั่นคง Homebrew ครั้งหนึ่งทั้งหมดเกี่ยวกับการช่วยเหลือผู้ใช้แต่ค่อยๆขยับออกไปจากสิ่งนั้น
GDP2

5
ฉันต้องเห็นด้วยกับ @ GDP2 ฉันเป็นผู้ใช้ Mac คนใหม่จาก linux นักพัฒนาในการชงมีทัศนคติที่ไม่ดี คุณเชื่อหรือไม่ว่ามีเพียง 13 ประเด็นใน gitub ของ Brew เมื่อฉันโพสต์ความคิดเห็นนี้ พวกเขาไม่ต้องการฟังผู้ใช้ พวกเขาไม่ต้องการปัญหาใด ๆ พวกเขาไม่สนใจปัญหาใด ๆ ที่คุณเปิดและปิดทันที ฉันไม่เคยเห็นทัศนคติเช่นนี้ในโครงการ github ใด ๆ ในฐานะผู้ใช้ใหม่ฉันใช้ชงเป็นเวลาหลายเดือนและวันนี้ฉันคิดว่าจะเปลี่ยนไปใช้อีกคนหนึ่งและพบคำถามนี้ ประสบการณ์การใช้ชงเป็นสิ่งที่เลวร้ายที่สุดที่ฉันเคยมีในชีวิตของฉันจนถึงตอนนี้
sgon00

57

MacPorts

มันเป็นอิสระจาก Mac OS X ซึ่งหมายความว่า MacPorts จะไม่สนใจไลบรารี่ของระบบและซอฟต์แวร์ที่มีอยู่ใน Mac OS X และดึงมันมาเองแทนซึ่งอาจช้าลงเมื่อยูทิลิตี้ที่คุณติดตั้งต้องการชุดใหญ่ ห้องสมุดและซอฟต์แวร์

แต่ตัวเลือกประเภทนี้จะปลอดภัยกว่าเพราะแพ็คเกจที่คุณติดตั้งนั้นได้รับผลกระทบน้อยกว่าจากขั้นตอนการอัปเดต / อัปเกรดระบบของ Apple


Homebrew

มันขึ้นอยู่กับแพ็กเกจที่ติดตั้งบน Mac OS X ที่มีอยู่ดังนั้นสิ่งนี้จะเพิ่มความเร็วในการติดตั้งแพ็กเกจและลดจำนวนไลบรารีที่ซ้ำซ้อน

แต่ความเสี่ยงถูกติดตั้งแพคเกจอาจใช้งานไม่ได้เนื่องจากการอัปเดต / อัปเกรดระบบของ Apple

ดังนั้นนี่คือการแลกเปลี่ยนที่แตกต่างกันสองแบบ

นอกจากนี้ Homebrew จะใช้เวลามากกว่า/ usr / localโดยค่าเริ่มต้นซึ่งบางคนไม่ชอบสิ่งนี้เพราะมันขัดแย้งกับประเพณียูนิกซ์และอาจทำให้เกิดปัญหาหากคุณติดตั้งอะไรที่นั่น (MySQL, ฯลฯ )


นอกเหนือจากความแตกต่างเหล่านี้เมื่อพิจารณาถึงแพคเกจที่ทั้งสองมีให้คุณสามารถตรวจสอบกับสองคำสั่งนี้หากคุณมี MacPorts / Homebrew ติดตั้งอยู่แล้วซึ่งจะแสดงแพ็คเกจที่พวกเขาให้มาในปัจจุบัน:

port list | wc -l
brew search | wc -l

และคุณจะพบว่า MacPorts มีแพ็คเกจมากกว่า Homebrew

(19399 กับ 3583 วันที่ 13 พฤษภาคม 2559)


17
ตามหมายเหตุเกี่ยวกับจำนวนแพ็คเกจที่แตกต่าง: Homebrew จะไม่รวมแพ็คเกจสำหรับภาษาการเขียนโปรแกรมซึ่งมีระบบบรรจุภัณฑ์ของตัวเอง (rubygems / pip / cpan …) หรือซอฟต์แวร์ที่มีตัวติดตั้ง OS X ที่เหมาะสมกว่า (MacTeX) . นอกจากนี้รายการที่ซ้ำกันและรุ่นที่เก่ากว่าไม่ได้อยู่ใน repo เริ่มต้น แต่รวมอยู่ในrepos แตะสำรอง เปรียบเทียบสิ่งนี้กับ macports ซึ่งเช่นมีพอร์ต IPython สำหรับรุ่น Python ที่รวมทั้งหมด มันเป็นปรัชญาที่แตกต่างซึ่งเพิ่มจำนวนแพ็คเกจใน macports โดยธรรมชาติ
Debilski

2
ลิงค์สุดยอด! terrychay.com/article/macports-vs-homebrew.shtml ขอขอบคุณ!
Jeff Burdges

@YaOz แน่นอนคุณสามารถเปลี่ยน homebrew ใช้สิ่งอื่นนอกเหนือ/usr/local?
Pacerier

41

เพียงแค่เพิ่มความคิดของฉันเองที่ดูเหมือนจริงประมาณปลายปี 2014 อย่างน้อย

เมื่อสองสามปีที่ผ่านมา Homebrew มีมือดีในแง่ของความคิดอย่างแน่นอน คุณจะพบบล็อกจำนวนมากที่มีคนพูดถึงว่าพวกเขามีความสุขกับ Homebrew มากเพียงใดเพราะ "MacPort ดึงทั่วโลก" vs "Homebrew ใช้ประโยชน์จากสิ่งที่คุณมีอยู่แล้ว"

อย่างไรก็ตาม IMO, MacPorts เป็นสัตว์ร้ายที่แตกต่างจากตอนนี้เมื่อสองสามปีก่อน เมื่อฉันเปลี่ยนมาใช้ OS X เป็นครั้งแรกและใช้ MacPorts ปรัชญา MP ก็น่าผิดหวังเพราะเกือบทุกอย่างถูกสร้างขึ้นจากแหล่งที่มา การติดตั้งใหม่นั้นเจ็บปวด / ช้าเป็นพิเศษ อย่างไรก็ตามในปีที่ผ่านมาหรือมากกว่านั้นขึ้นอยู่กับการแสดงผลของฉันอย่างแท้จริงดูเหมือนว่า 90% ของแพ็คเกจ MP เป็นไบนารีและดังนั้นการติดตั้งจึงเร็วจริง ๆ ตอนนี้ จากสิ่งที่ฉันรวบรวม Homebrew ก็เคลื่อนไหวในทิศทางนี้ด้วย "ขวด" แต่ฉันได้รับความประทับใจว่าทุกสิ่งที่คุณติดตั้งผ่าน HB ณ เวลานี้จะถูกรวบรวมจากแหล่งที่มา

ดังนั้นหากเพียงเพื่อเสนอความเห็นตอบโต้ MacPorts ดูเหมือนว่าจะเป็นตัวเลือก "เร็วขึ้น" ในวันนี้ อย่างไรก็ตามความคิดเห็นของประชาชนส่วนใหญ่เกี่ยวกับ MP ดูเหมือนจะมาจากประสบการณ์จากประมาณ 2011-12 หรือมากกว่านั้นและไม่ได้คำนึงถึงสิ่งนี้จริงๆ ใช้เวลานี้กับเม็ดเกลือแม้ว่าฉันไม่ใช่ผู้ใช้ HB ปกติ (และมันค่อนข้างเจ็บปวดที่จะใช้ทั้งสองข้าง)

ฉันคิดว่า HB มีข้อดีที่หมายความว่ามันน่าจะ "ชนะสงคราม" ในระยะยาว

  • HB เป็นทับทิมทั้งหมดในขณะที่ MacPorts และสูตรบรรจุภัณฑ์นั้นเขียนใน TCL ซึ่งไม่ใช่ภาษาสคริปต์ที่เป็นที่นิยมอย่างแน่นอน ที่กล่าวว่ามันค่อนข้างง่ายที่จะสร้างพอร์ตไฟล์ของคุณเอง
  • HB มีพื้นฐานมาจาก GitHub และดูเหมือนว่าจะมีการต้อนรับผู้ร่วมให้ข้อมูลมากขึ้นในขณะที่ MacPort โฮสต์ที่เก็บ SVN ของตัวเองที่ไหนสักแห่งที่ฉันคิดว่า - ซึ่งโดยทั่วไปสะท้อนถึงอายุที่แตกต่างกันของทั้งสองโครงการที่ฉันคิด
  • ดังที่ได้กล่าวมาแล้วฉันทามติทั่วไปคือ MacPorts ถูกแทนที่โดย HB & ไม่ว่าจะถูกหรือผิดที่ดึงดูดผู้คนจำนวนมากเข้าหามัน

มิฉะนั้น YaOZl & kLy ครอบคลุมความแตกต่างที่สำคัญในแง่ของ sudo, การพึ่งพา ฯลฯ ค่อนข้างดี โดยส่วนตัวแล้วฉันพบว่าบางครั้ง MacPort ทำให้เกิดอาการปวดหัวในแง่ของโปรแกรมอื่น ๆ ที่ไม่คาดหวังว่าจะมีอะไรอยู่/opt/localสิ่งที่ถูกติดตั้งด้วยสิทธิ์การใช้งานรูท ฯลฯ และมีบางสิ่งที่โดยทั่วไปแล้วไม่ติดตั้งกับ MacPorts MacPorts แต่คุณคงคลั่งไคล้ที่จะไม่ติดตั้งผ่านการจัดการพลอยปกติของรูบี้) นอกเหนือจากนั้นแม้ว่าฉันจะเป็นแฟนตัวยงของปรัชญา MacPorts ในการสร้างโลกเล็ก ๆ ของตัวเองและไม่ต้องพึ่งพาไลบรารี่ OS X ที่ได้รับการบรรจุไว้ล่วงหน้า - เมื่อมันทำงานและส่วนใหญ่ก็ทำทุกอย่างเรียบง่าย อะไรคือสิ่งที่คุณต้องการของ Package Manager จริงๆ และอย่างที่ฉันพูดถึง ณ จุดนี้ในเวลามันสวยน่ากลัวอย่างรวดเร็วในการตั้งค่าส่วนใหญ่

หวังว่าสิ่งเหล่านั้นมีประโยชน์


“ ดังที่ได้กล่าวมาแล้วฉันทามติทั่วไปคือ MacPorts ถูกแทนที่โดย HB & ไม่ว่าจะถูกหรือผิดที่ดึงดูดผู้คนจำนวนมากเข้าหามัน” ... สิ่งนี้ให้ความรู้สึกเหมือนคำพูดผิวเผินมาก ... การได้รับความนิยมและการให้คุณภาพนั้นไม่เหมือนกันและไม่ได้หมายความว่าอย่างที่สองคือ "แทนที่" ในตอนแรก
Dmitri Zaitsev

3

Brew ใช้งานได้อย่างราบรื่นอย่างสมบูรณ์แบบดังนั้นฉันจึงไม่สามารถบอกได้ว่าข้อเสียของมันคืออะไร ข้อเสียบางประการของ MacPorts:

มีคำถามยอดนิยมมากมายเกี่ยวกับสองประเด็นแรก


นี่เป็นประสบการณ์ของฉันในการติดตั้ง ImageMagick เมื่อวันที่ 10.6; ชงง่ายมาก แต่ไม่รวมตัวแทน JP2 imagemagick.org/script/binary-releases.php
Nemo

2
Brew และ macports ต้องการเครื่องมือบรรทัดคำสั่ง Xcode เหมือนกันที่นี่
user151019

@ มาร์คฉันไม่แน่ใจว่าคุณหมายถึงอะไร แต่ชงทำงานได้อย่างสมบูรณ์แบบสำหรับฉันโดยไม่ใช้ Xcode
Nemo

2
คุณจะต้องมี complier สำหรับ Brew และ MacPorts ซึ่งสามารถติดตั้งผ่าน Xcode Command Line Tools คุณจะไม่จำเป็นต้อง Xcode แอพลิเคชัน
nohillside

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