MacPorts so với Fink so với Homebrew [trùng lặp]


39

Câu hỏi này đã có câu trả lời ở đây:

Tôi luôn sử dụng MacPorts để cài đặt và duy trì trình biên dịch GCC của mình và các chương trình khác. Bây giờ tôi đã nghe nói về Fink và Homebrew. Có vẻ như hai tiện ích này đang có chỗ đứng trong cộng đồng Mac, nhưng tôi không hiểu sự khác biệt giữa chúng.

Sự khác biệt chính giữa MacPorts, Fink và Homebrew là gì? Có sự khác biệt về chất lượng hoặc hiệu suất?


3
Ngoài ra còn có Rudix .
lhf

4
câu hỏi cũ này giải quyết nhu cầu của bạn?
bmike

Câu trả lời:


30

Fink đã được khoảng từ ít nhất năm 2001. Fink và MacPorts là cán bộ quản lý gói phần mềm đó muốn trở thành "trực giao" vào hệ thống, có nghĩa là, họ cài đặt phiên bản riêng của họ python, perl, thư viện, trình biên dịch, vv trong cây riêng (/ sw cho Fink, / opt / local cho MacPorts). Lý do cho điều này là vì họ không kiểm soát được những gì Apple làm với phần mềm của mình và đôi khi nó đã phá vỡ mọi thứ khi Apple cập nhật nội dung của riêng họ.

Theo những gì tôi hiểu, Homebrew muốn được "tích hợp" hơn với hệ thống, sử dụng các thư viện mà Apple cung cấp và cài đặt nội dung của nó trong /usr/local/binvà các thư mục tiêu chuẩn khác. Tôi đoán điều đó có nghĩa là sự lựa chọn phần mềm bị hạn chế hơn với Homebrew, tôi không thể tưởng tượng rằng người ta có thể cài đặt KDE với nó, nhưng tôi đã không thử điều đó.

Một điểm cho Fink so với MacPorts: vài năm trước, dự án Fink đã cung cấp các gói nhị phân; đó là bạn có thể tải xuống và cài đặt các gói mà không cần tự biên dịch chúng. Trình quản lý gói của nó vẫn có khả năng đó, chỉ có điều không có sẵn nhị phân trong một thời gian dài. Tôi không biết nếu điều đó đã thay đổi trong thời gian đó.

Vì vậy, trong ngắn hạn: không có công cụ nhị phân, Fink và MacPorts rất giống nhau. Họ nên có sẵn nhiều gói hơn Homebrew, trong khi Homebrew nên chiếm ít dung lượng đĩa hơn vì những lý do tôi đã nêu ở trên. Liên quan đến chất lượng: Tôi chưa bao giờ cài đặt Homebrew và giữa Fink và MacPorts tôi thường thích cái mà tôi hiện không sử dụng.

Vì vậy, nếu bạn hài lòng với MacPorts, hãy ở lại với nó.

PS Lý do tôi chưa bao giờ thử Homebrew là tôi sử dụng một số gói được biên dịch trước. Chúng cũng thường tự cài đặt vào / usr / local / bin và những thứ tương tự, chỉ khóc vì rắc rối.


Tôi nghĩ bạn phải sai về KDE, nhưng chắc chắn đó là sự thật. Nó đã từng có các gói cho nó, nhưng rõ ràng có một cái gì đó về cách xây dựng KDE không tương thích với hệ thống phân cấp của Homebrew. Hy vọng rằng sẽ được cố định một ngày nào đó.
echristopherson

1
@echristopherson Vậy nó đã có KDE một lần chưa? Một bất ngờ cho tôi. Nhưng KDE dường như khá mong manh, tôi đã từng cài đặt nó với Fink và ở lần cập nhật tiếp theo, toàn bộ cài đặt đã bị rối tung; vì vậy bạn sẽ mong đợi rằng nó thậm chí còn mong manh hơn với Homebrew. Nhưng nếu họ hiểu đúng vào một ngày nào đó, tôi sẽ lấy lại mọi thứ tôi đã nói.
trăm Ulysses

4
Cài đặt homebrew trong / usr / local là lý do tương tự tôi cũng không sử dụng. Bám sát triết lý unix truyền thống, chỉ tôi nên đặt nội dung vào / usr / local .. Một người quản lý gói nên quản lý một số tiền tố khác.
Jason

Cá nhân tôi sử dụng MacPorts, nhưng lần trước tôi đã kiểm tra (mà trước đây) Fink có một bộ sưu tập các gói lớn hơn nhiều.
HairOfTheDog

1
@Jason Điều này cũng đúng với một máy người dùng? Tôi vừa cài đặt Homebrew và chỉ hy vọng tôi sẽ không hối tiếc. Tuy nhiên tôi không rõ lắm về cách apple xử lý root và người dùng với quyền quản trị viên. Tôi là người dùng duy nhất trên hệ thống của tôi.
haziz

8

Tôi muốn nói rằng sự khác biệt chính là:
Providence, kết quả và phương thức phân phối.

Chi tiết quan trọng nhất sẽ là để bạn kiểm tra xem hệ thống bạn chọn có chứa (các) gói cho phần mềm bạn muốn không. Tổng số gói là khoảng: 19k Macports, 22k Fink, 3k Homebrew, 10k pkgsrc.

  • Macports , trước đây là các cổng Darwin dường như là một hệ thống cổng kiểu BSD như pkgsrc lấy nguồn, vá nó, xây dựng và cài đặt nó. Nếu nó rất giống pkgsrc, nó sẽ làm điều này bằng cách sử dụng các kịch bản shell. Nó được sử dụng để dựa vào các công cụ được cung cấp bởi Xcode, nhưng điều đó đã bắt đầu gây ra sự cố, vì vậy bây giờ nó cũng có thể bootstrap gcc. Ngoài ra, có một số gói nhị phân ngoài kia, nhưng bạn có thể không tìm thấy phiên bản mới nhất cho hệ thống của mình mỗi lần. Nó đến từ Darwin, BSD có nguồn mở của Apple dựa trên nhân OS X đã ngừng phân phối. Nó cài đặt các gói /opt/localmà có lẽ sẽ không bị chạm bởi các gói cài đặt hoặc nâng cấp hệ thống khác.
  • Fink , re: Finch là chủ đề của nghiên cứu của Charles Darwin, là một hệ thống gói dựa trên Trình quản lý gói Debian, có nghĩa là nó có tính năng sử dụng dpkgapt-getlợi ích chính là bạn có thể tìm thấy các gói nhị phân một cách đáng tin cậy .. giả sử bạn có gói ngược dòng kho chứa nhị phân cho phiên bản HĐH hiện tại của bạn. Nó cũng xuất phát từ cơ sở người dùng Darwin nhưng có lẽ phổ biến hơn với những người đến từ Debian Linux [cho mac hoặc PPC] đang tìm kiếm một sự hỗ trợ phần cứng ổn định hơn một chút ... trong khi nó kéo dài. Nó cài đặt các gói vào /swvì lý do không ghi đè hoặc bị ghi đè lên những gì trình cài đặt khác có thể cài đặt. Ngoài ra một cái gì đó về đường dẫn tìm kiếm trình biên dịch và mặc định PATHcó chứa /usr/local/bin.
  • Homebrew là một loại hệ thống cổng trong khái niệm, nhưng được viết bằng ruby. Nó không đến từ một thế giới HĐH độc lập và được dành cho người dùng Mac OS X (những cái khác được sử dụng và kiểm tra kỹ lưỡng như nhau). Vào giữa năm 2014, nó cố gắng xây dựng cơ bản mọi gói (họ gọi chúng là công thức) mặc dù một số có sẵn ở dạng nhị phân gọi là chai và bạn có thể tạo một kho chứa chai để chia sẻ trong nhóm xã hội của mình nếu bạn nghiêng về bán - chuẩn hóa bạn và bộ công cụ của bạn bè (ditto cho các hệ thống khác). Về mặt tích cực, nó xây dựng bằng cách sử dụng nhiều thư viện như bạn có thể đã có từ Apple. Tôi nghĩ rằng bạn không cần Xcode để nó hoạt động trong hầu hết các trường hợp, nhưng nó "hỗ trợ và khuyến nghị" nó. Bạn có thể cài đặt từng mục trong tiền tố riêng của nó,/usr/localTôi nghĩ rằng nó đã được khởi động và gần đây hơn những người khác. Cá nhân tôi nhận thấy tôi đã sử dụng gói này nhiều nhất vì tôi hiếm khi cần các gói phụ thuộc lẫn nhau và tôi không rõ về việc mac homebrew hỗ trợ nó tốt như thế nào. Homebrew nhằm mục đích buộc bạn sử dụng các trình quản lý gói phù hợp hơn cho phần mềm bắt nguồn từ một trình quản lý được liên kết chặt chẽ, như cpan, đá quý và những thứ tương tự.
  • pkgsrc sẽ có sẵn cho Mac OS X, có các gói nhị phân và đến từ NetBSD duy trì nó và lần lượt dựa trên hệ thống cổng của FreeBSD. NetBSD đã rất tập trung vào tính di động trên các kiến ​​trúc mà có lẽ đây là hệ thống cổng ứng cử viên tốt nhất để bắt đầu hỗ trợ các nền tảng khác. Nó giống với mô tả của tôi với Macport, nhưng tôi đã không sử dụng nó (ngoại trừ NetBSD) và tôi nghĩ rằng nó cài đặt vào /nhưng xây dựng và duy trì các gói trong /pkg. Có thể có rất nhiều gói (như 12k) và khoảng 20% ​​có thể không được xây dựng, hoặc, phiên bản mới nhất của nguồn có thể không vá với bản vá được bảo trì cuối cùng. Đó là lý do tại sao các gói nhị phân là sở thích của tôi với các loại hệ thống này.

Tôi cũng đã sử dụng perlbrew , một loại homebrew cho perl, các ứng dụng được xây dựng theo perl và một số phụ thuộc. Đây chủ yếu là một cách tốt để duy trì nhiều phiên bản của perl, và nó thuận tiện phủ nhận sự cần thiết của các hệ thống gói chung khác (cho mục đích của nó). Nhưng tất nhiên là cũng có CPANcpanminus .

Bạn có thể tìm thấy các trình quản lý tương tự cho môi trường mini của riêng bạn (như vundle cho vim hoặc gem cho ruby, npm cho node.js, pypm hoặc pip cho python, đi kèm go install... v.v?)


Các đếm gói được gây hiểu lầm vì Homebrew cố ý không bao gồm các lớp học nhất định của gói - xem chi tiết tại apple.stackexchange.com/questions/32724/...
Dan Dascalescu

5

Fink và MacPorts là đối thủ cạnh tranh trực tiếp ở chỗ họ cài đặt một hệ thống trực giao. Fink đã mất chỗ đứng đáng kể cho MacPorts vài năm trước. Tôi không hoàn toàn chắc chắn tại sao bây giờ, nhưng MacPorts xử lý hầu hết mọi thứ tốt hơn.

Chúng tôi ít lý do cho việc cài đặt trực giao bây giờ vì Mac OS X đã phát triển ít quần điên hơn. Brew được otoh tạo ra để tích hợp tốt hơn với Mac OS X, làm cho nó có trọng lượng nhẹ hơn và ít trực giao hơn, và cũng vì Rubyist viết lại mọi thứ.

Trong thực tế, MacPorts phức tạp hơn một chút, nhưng MacPorts hầu như luôn hoạt động, trong khi Brew đơn giản hơn nhưng có nhiều khả năng chạy vào một bức tường gạch.

Hãy tự hỏi mình những câu hỏi sau:

  • Bạn có sử dụng nhiều công cụ hệ sinh thái Linux không?
  • Bạn có cần nhiều phiên bản không?
  • Bạn có thử nghiệm nhiều công cụ mới không?
  • Bạn có sử dụng các công cụ / thư viện toán học / khoa học hoặc các công cụ khác thường không?

Bất kỳ câu trả lời có nào đề nghị bạn nên chọn MacPorts. Brew sẽ ít chi phí hơn nếu bạn cài đặt các gói tương đối ít và phổ biến, nhưng Brew sẽ không xử lý sự phức tạp. Bia gây ô nhiễm /usr/localmà bạn có thể muốn cài đặt thủ công quá. Trên thực tế, có nhiều đối số chi tiết hơn cho MacPorts nhưng một lần nữa chúng có thể không áp dụng nếu bạn trả lời không.

Ngược lại, nếu bạn trả lời có nhưng máy chính của bạn chạy Linux và máy Mac của bạn chỉ là một món đồ chơi chạy phần mềm Linux tối thiểu, thì thực sự bạn có thể làm tốt hơn với Brew.


2

Nhưng như một lưu ý phụ, không có gì liên quan đến Apple OS X sẽ tự cài đặt vào / usr / local / bin. Họ sử dụng / usr / lib, / usr / bin đằng sau hậu trường và các khung được đóng gói thành / Thư viện / Khung trong khi những thứ bạn tự cài đặt thông qua Unix ./có hình, tạo, thực hiện cài đặt sẽ sử dụng / usr / local / bin, v.v. và các tiện ích như MacPorts sẽ sử dụng / opt / và có thể gói khung cho cá nhân của bạn ~ / Library / Frameworks /.

Đề nghị của tôi là ở lại với MacPorts nếu đó là những gì bạn đã quen. Về cơ bản, điểm khác biệt chính là MacPorts sử dụng một hệ thống gần giống với triển khai cây cổng Unix / BSD thực sự với các cổng từ FreeBSD, trong khi Fink sử dụng các ứng dụng được chuyển từ kho lưu trữ Linux Debian và sử dụng cùng hệ thống quản lý gói như Linux Debian.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.