MacPorts vs. Fink vs. Homebrew [duplikat]

39

To pytanie ma już odpowiedź tutaj:

Zawsze korzystałem z MacPorts do instalowania i zarządzania kompilatorami GCC i innymi programami. Teraz słyszałem o Fink i Homebrew. Wygląda na to, że te dwa narzędzia zyskują popularność w społeczności Mac, ale nie rozumiem różnicy między nimi.

Jaka jest główna różnica między MacPorts, Fink i Homebrew? Czy jest jakaś różnica w jakości lub wydajności?


źródło
3
Jest też Rudix .
lhf
4
Czy to starsze pytanie odpowiada Twoim potrzebom?
bmike

Odpowiedzi:

30

Fink istnieje od co najmniej 2001 roku Fink oraz MacPorts są menedżery pakietów, które chcą być „prostopadłe” do systemu, to znaczy, że zainstalować własną wersję python, perl, biblioteki, kompilatory, itp własnych drzew (za / SW Fink, / opt / local dla MacPorts). Powodem tego jest to, że nie mają kontroli nad tym, co Apple robi ze swoim oprogramowaniem, i czasami psuje się, gdy Apple aktualizuje swoje własne rzeczy.

Z tego, co rozumiem, Homebrew chce być bardziej „zintegrowany” z systemem, korzysta z bibliotek, które zapewnia Apple, i instaluje swoje rzeczy w /usr/local/bininnych standardowych folderach. Wydaje mi się, że to oznacza, że ​​wybór oprogramowania jest bardziej ograniczony w Homebrew, nie wyobrażam sobie, aby można było z nim zainstalować KDE, ale nie próbowałem tego.

Jeden punkt dla Fink vs. MacPorts: kilka lat temu projekt Fink dostarczył pakiety binarne; oznacza to, że możesz pobrać i zainstalować pakiety bez ich samodzielnej kompilacji. Jego menedżer pakietów nadal ma tę możliwość, tyle że przez długi czas nie było dostępnych plików binarnych. Tymczasem nie wiem, czy to się zmieniło.

Krótko mówiąc: bez plików binarnych Fink i MacPorts są bardzo podobne. Powinny mieć więcej dostępnych pakietów niż Homebrew, podczas gdy Homebrew powinien zajmować mniej miejsca na dysku z powodów, które podałem powyżej. Jeśli chodzi o jakość: nigdy nie instalowałem Homebrew, a pomiędzy Fink i MacPorts zazwyczaj wolę ten, którego obecnie nie używam.

Więc jeśli jesteś zadowolony z MacPorts, po prostu pozostań z nim.

PS Nigdy nie próbowałem Homebrew, ponieważ korzystam z niektórych wstępnie skompilowanych pakietów. Zazwyczaj instalują się one również w / usr / local / bin i tym podobnych, co po prostu płacze z powodu problemów.

Percival Ulisses
źródło
Myślałem, że musisz się mylić co do KDE, ale na pewno to prawda. Kiedyś miał do tego pakiety, ale najwyraźniej jest coś w sposobie budowania KDE, co jest niezgodne z hierarchią Homebrew. Mam nadzieję, że zostanie to kiedyś naprawione.
echristopherson
1
@echristopherson Więc kiedyś miał KDE? Niespodzianka dla mnie. Ale KDE wydaje się dość delikatne, raz zainstalowałem go z Fink, a przy następnej aktualizacji cała instalacja się popsuła; więc można się spodziewać, że z Homebrew jest jeszcze bardziej delikatny. Ale jeśli kiedyś to zrozumieją, cofam wszystko, co powiedziałem.
Percival Ulysses,
4
Instalacja Homebrew w / usr / local to ten sam powód, dla którego go nie używam. Trzymając się tradycyjnej filozofii uniksowej, tylko ja powinienem umieścić rzeczy w / usr / local .. Menedżer pakietów powinien zarządzać innymi prefiksami.
Jason
Osobiście używam MacPortów, ale ostatnio sprawdziłem (który jakiś czas temu) Fink miał znacznie większą kolekcję dostępnych pakietów.
HairOfTheDog,
1
@Jason Czy dotyczy to również komputera z jednym użytkownikiem? Właśnie zainstalowałem Homebrew i mam nadzieję, że nie pożałuję. Nie jestem jednak do końca jasne, jak Apple obsługuje roota i użytkowników z uprawnieniami administratora. Jestem jedynym użytkownikiem w moim systemie.
haziz 11.11
8

Powiedziałbym, że główne różnice to:
Opatrzność, wynik i metoda dystrybucji.

Najważniejszym szczegółem będzie sprawdzenie, czy wybrany system zawiera pakiety dla potrzebnego oprogramowania. Liczba paczek to w przybliżeniu: 19 tys. Macportów, 22 tys. Fink, 3 tys. Homebrew, 10 tys. Pkgsrc.

  • Macports , dawniej porty Darwin, wydaje się być systemem portów typu BSD, takim jak pkgsrc, który pobiera źródło, łata je, buduje i instaluje. Jeśli jest bardzo podobny do pkgsrc, zrobi to za pomocą skryptów powłoki. Kiedyś polegał na narzędziach dostarczanych przez Xcode, ale to zaczęło powodować problemy, więc teraz może również ładować gcc. Dodatkowo istnieje kilka pakietów binarnych, ale nie zawsze możesz znaleźć najnowszą wersję swojego systemu. Pochodzi z Darwina, otwartego źródła Apple BSD opartego na jądrze OS X, które zaprzestało dystrybucji. Instaluje pakiety, do /opt/localktórych prawdopodobnie nie zostaną dotknięte inne pakiety instalatora lub aktualizacje systemu.
  • Fink , re: zięby, które są przedmiotem badań Charlesa Darwina, to system pakietów oparty na Menedżerze pakietów Debiana, co oznacza, że ​​cechuje go użycie, dpkga apt-getgłówną zaletą jest to, że można niezawodnie znaleźć pakiety binarne .. zakładając, że masz pakiet upstream repozytorium zawierające pliki binarne dla bieżącej wersji systemu operacyjnego. Wyszedł także z bazy użytkowników Darwina, ale prawdopodobnie bardziej popularny wśród tych, którzy pochodzili z Debiana Linux [dla komputerów Mac lub PPC] i szukali trochę bardziej stabilnego wsparcia sprzętowego ... podczas jego trwania. Instaluje pakiety w /swcelu nie zastąpienia lub nadpisania tego, co mogą zainstalować inni instalatorzy. Również coś o ścieżkach wyszukiwania kompilatora i domyślnym PATHzawierającym /usr/local/binjuż.
  • Homebrew jest rodzajem systemu portów w koncepcji, ale napisanym w rubinie. Nie pochodzi z niezależnego świata systemu operacyjnego i był przeznaczony dla użytkowników systemu Mac OS X (inne są dokładnie używane i testowane przez to samo). Od połowy 2014 r. Stara się zbudować praktycznie każdy pakiet (nazywają je formułą), choć niektóre są dostępne w formie binarnej, zwanej butelkami, i możesz utworzyć repozytorium butelek do udostępnienia w grupie społecznej, jeśli masz ochotę na pół -standaryzowanie łańcuchów narzędziowych Ciebie i Twojego przyjaciela (to samo dotyczy innych systemów). Plusem jest to, że buduje przy użyciu tylu bibliotek, ile prawdopodobnie już pochodzi od Apple. Myślę, że nie potrzebujesz Xcode, aby działał w większości przypadków, ale „obsługuje i poleca” go. Możesz zainstalować każdy element z osobnym prefiksem,/usr/localMyślę, że został on zainicjowany i jest nowszy od innych. Osobiście odkryłem, że korzystałem z tego najczęściej, ponieważ rzadko potrzebuję współzależnych pakietów i nie jestem pewien, jak dobrze Mac Homebrew obsługuje to. Homebrew ma na celu zmusić cię do korzystania z bardziej odpowiednich menedżerów pakietów dla oprogramowania pochodzącego od ściśle powiązanego menedżera, takiego jak cpan, gems i tym podobne.
  • pkgsrc byłby dostępny dla Mac OS X, ma pakiety binarne i pochodzi z NetBSD, który go utrzymuje i z kolei bazuje na systemie portów FreeBSD. NetBSD tak bardzo skoncentrował się na przenośności w różnych architekturach, że prawdopodobnie był to najlepszy kandydujący system portowy do rozpoczęcia obsługi innych platform, które posiada. W moim opisie jest podobny do Macporta, ale nie korzystałem z niego (z wyjątkiem NetBSD) i myślę, że instaluje się w, /ale buduje i utrzymuje pakiety w /pkg. Prawdopodobnie jest wiele pakietów (np. 12k) i około 20% może się nie skompilować, lub najnowsza wersja źródła może nie łatać się z ostatnio utrzymaną łatką. Dlatego właśnie pakiety binarne są moim wyborem z tego rodzaju systemami.

Użyłem również perlbrew, który jest rodzajem homebrew perl, aplikacji wbudowanych w perl i niektórych zależności. Jest to w większości dobry sposób na utrzymanie wielu wersji Perla i wygodnie neguje potrzebę stosowania innych, bardziej ogólnych systemów pakietów (do swoich celów). Ale oczywiście, że ma również cpan i cpanminus .

Można znaleźć podobne menedżerów dla własnego mini-środowiskowych (np vundle dla vim lub gem dla Ruby, KMP dla node.js, pypm lub pip dla Pythona, Go wbudowaną go install... etc?)

dlamblin
źródło
Liczby pakietów są mylące, ponieważ Homebrew celowo nie obejmuje niektórych klas pakietów - zobacz więcej na apple.stackexchange.com/questions/32724/…
Dan Dascalescu
5

Fink i MacPorts są bezpośrednimi konkurentami, ponieważ instalują system ortogonalny. Fink stracił znaczną pozycję wobec MacPorts kilka lat temu. Nie jestem do końca pewien, dlaczego, ale MacPorts poradził sobie prawie wszystko lepiej.

Mamy mniej powodów, dla których instalacja ortogonalna jest teraz, gdy Mac OS X ma mniej szalone spodnie. Brew został stworzony w celu lepszej integracji z Mac OS X, dzięki czemu jest lżejszy i mniej ortogonalny, a także dlatego, że Rubyist przepisał wszystko.

W praktyce MacPorts jest nieco bardziej skomplikowany, ale MacPorts prawie zawsze działa, podczas gdy Brew jest prostszy, ale bardziej prawdopodobne jest, że wpadnie na mur z cegły.

Zadaj sobie następujące pytanie:

  • Czy korzystasz z wielu narzędzi ekosystemu Linux?
  • Potrzebujesz wielu wersji?
  • Czy dużo eksperymentujesz z nowymi narzędziami?
  • Czy korzystasz z narzędzi matematycznych / naukowych / bibliotek lub innych niezwykłych narzędzi?

Wszelkie odpowiedzi twierdzące sugerują, że powinieneś wybrać MacPorts. Brew jest mniejszy, jeśli zainstalujesz stosunkowo niewiele popularnych pakietów, ale Brew nie poradzi sobie również ze złożonością. Zaparzanie zanieczyszczeń, /usr/localktóre możesz chcieć również w przypadku instalacji ręcznych. W rzeczywistości istnieją bardziej szczegółowe argumenty za MacPortami, ale znowu prawdopodobnie nie mają zastosowania, jeśli nie odpowiedziałeś.

I odwrotnie, jeśli odpowiedź brzmi „tak”, ale na podstawowej maszynie działa system Linux, a komputer Mac jest jedynie zabawką z minimalnym oprogramowaniem dla systemu Linux, to w rzeczywistości lepiej radzisz sobie z Brew.

Jeff Burdges
źródło
2

Ale na marginesie, nic związanego z Apple OS X nie zainstaluje się w / usr / local / bin. Używają / usr / lib, / usr / bin za kulisami, a frameworki są pakowane do / Library / Frameworks, podczas gdy rzeczy, które instalujesz sam za pomocą zwykłego Uniksa ./configure, make, make install użyje / usr / local / bin itp. , a narzędzia takie jak MacPorts użyją / opt / i ewentualnie spakują frameworki do twojego osobistego ~ / Library / Frameworks /.

Radzę pozostać z MacPorts, jeśli jesteś do tego przyzwyczajony. Zasadniczo główna różnica polega na tym, że MacPorts używa systemu, który bardziej przypomina prawdziwą implementację drzewa portów Unix / BSD z portami FreeBSD, podczas gdy Fink używa aplikacji przeniesionych z archiwów Linux Debian i używa tego samego systemu zarządzania pakietami, co Linux Debian.

Chris
źródło