Jaka jest różnica / użycie homebrew, macports lub innych narzędzi do instalowania pakietów? [Zamknięte]
238
Niedawno zmieniłem komputer Mac na Ubuntu. Byłem rozczarowany, że Mac nie ma tego wygodnego sudo apt-getw Ubuntu. Słyszałem, że powinienem używać Homebrew, ale nie jestem do końca pewien, co robi Homebrew lub Macports?
Kilka lat temu drzwi frontowe homebrew miały oświadczenie, które brzmiało mniej więcej tak: „homebrew jest lepszy, ponieważ jest napisany w języku Ruby”. Nie mam nic przeciwko Ruby, nie myślę o tobie. Lubię oop, a ruby to świetny język. Mam problem z każdym programistą, który uważa, że jeden język jest lepszy od wszystkich innych. Tylko z tego powodu nie interesuje mnie homebrew. Również Macports działa dla mnie dobrze od wielu lat.
Mike Makuch,
Odpowiedzi:
145
MacPorts to droga.
Jak wskazał @ user475443, MacPorts ma o wiele więcej pakietów. Dzięki naparowi wkrótce znajdziesz się w pułapce, ponieważ potrzebna formuła nie istnieje.
MacPorts to natywna aplikacja: C + TCL. W ogóle nie potrzebujesz Ruby. Aby zainstalować Ruby on Mac OS X może potrzebować MacPorts, więc po prostu iść z DarwinPorts i będziesz szczęśliwy.
MacPorts jest naprawdę stabilny, w ciągu 8 lat nigdy nie miałem z tym problemu i cały ekosystem Unixa się na nim opierał.
Jeśli jesteś programistą PHP, możesz zainstalować ostatnią wersję Apache (Mac OS X używa wersji 2.2), PHP i wszystkie potrzebne rozszerzenia, a następnie uaktualnić wszystko za pomocą jednego polecenia. Zapomnij zrobić to samo z Homebrew.
Jeśli masz zainstalowany zarówno PHP55, jak i PHP56 (z wieloma różnymi rozszerzeniami), możesz przełączać się między nimi za pomocą jednego polecenia. Wszystkie względne rozszerzenia są częścią grupy i zostaną aktywowane w wybranej grupie: php55 lub php56. Nie jestem pewien, czy Homebrew ma tę funkcję.
Rubiści lubią przepisywać wszystko w Rubim, ponieważ jedyną rzeczą, na którą są swobodnie, jest sam Ruby.
Rubiści lubią przepisywać - hehe, spójrz na facetów NodeJS wdrażających binarne protokoły dla MySQL w JS! :)
kolypto
37
Nie potrzebujesz MacPorts, aby zainstalować Ruby - Ruby jest dołączony do OS X, a brew używa systemu Ruby.
Michael Ekstrand,
5
@Michael Ekstrand OS X nie zawiera ostatniej wersji Ruby.
rzeczownik
89
Nie mogę głosować za tym. Jest zbyt wredny, a wstręt podważa informacje.
OldPeculier
34
Głosowanie w celu przeciwdziałania pominiętym głosowaniom „przeciw Snarkom”. Każda informacja otrzymana od człowieka zawsze będzie miała naturalne nastawienie (w tym przypadku „wulgarność”). Doceniam perspektywę tego użytkownika, być może szczególnie dlatego, że odpowiedź nie brzmi jak wpis w Wikipedii.
rinogo
109
Zarówno Homebrew, jak i Macports rozwiązują ten sam problem - jest to instalacja typowych bibliotek i narzędzi, które nie są dołączone do systemu OSX.
Zazwyczaj są to biblioteki związane z programowaniem i najczęstszym zastosowaniem tych narzędzi jest dla programistów pracujących na systemie OSX.
Oba wymagają zainstalowanych narzędzi wiersza polecenia xcode (które można pobrać osobno z https://developer.apple.com/ ), a dla niektórych konkretnych pakietów będzie trzeba zainstalować cały IDE xcode.
xcode można zainstalować ze sklepu Mac App Store, jest do pobrania za darmo, ale zajmuje trochę czasu, ponieważ ma około 5 GB (jeśli dobrze pamiętam).
macports jest wersją osx narzędzia portowego od BSD (ponieważ osx pochodzi od BSD, był to naturalny wybór). Dla każdego, kto zna którąkolwiek z dystrybucji BSD, macports poczują się jak w domu.
Główna różnica między homebrew a macports; a powodem, dla którego wolę homebrew, jest to, że nie zastąpi on rzeczy, które powinny być instalowane „natywnie” w systemie OSX. Oznacza to, że jeśli dostępny jest pakiet natywny, homebrew powiadomi Cię zamiast go zastąpić i spowodować problemy w dalszej linii. Instaluje również biblioteki w przestrzeni użytkownika (dlatego nie trzeba używać „sudo” do instalowania rzeczy). Pomaga to również w pozbyciu się bibliotek, ponieważ wszystko znajduje się na dostępnej ścieżce.
homebrew cieszy się również bardziej aktywną społecznością użytkowników, a jego pakiety (zwane formułami) są dość często aktualizowane.
macports nie zastępuje natywnych pakietów OSX - dostarcza własną wersję - To jest główny powód, dla którego wolę macports niż home-brew, musisz być pewien, czego używasz i zmian Apple w innych momentach niż porty i był znany być latami za aktualizacjami w niektórych projektach
Czy możesz podać odniesienie pokazujące, że Macports zastępuje natywne pakiety OS X? O ile mogę stwierdzić, cała instalacja Macports odbywa się w
/opt/local
Być może powinienem wyjaśnić - nigdzie nie powiedziałem w mojej odpowiedzi, że Macports zastępuje natywne pakiety OSX. Obie instalują elementy osobno.
Homebrew ostrzeże Cię, kiedy powinieneś instalować rzeczy „natywnie” (używając preferowanego instalatora biblioteki / narzędzia) dla lepszej kompatybilności. To miałem na myśli. Będzie również korzystać z tylu lokalnych bibliotek, które są dostępne w OS X. Z wiki :
Naprawdę nie lubimy duplikatów w Homebrew / homebrew
Jednak lubimy duplikaty w kranie!
Rzeczy dostarczane z systemem OS X lub biblioteką dostarczaną przez RubyGems, CPAN lub PyPi nie powinny być kopiowane. Istnieją ku temu dobre powody:
Duplikaty bibliotek regularnie przerywają kompilacje
Pojawiają się subtelne błędy ze zduplikowanymi bibliotekami oraz, w mniejszym stopniu, zduplikowanymi narzędziami
Chcemy, abyś starał się, aby twoja formuła działała z tym, co zawiera OS X
Opcjonalnie możesz zastąpić wersje dostarczonych macosxów narzędziami homebrew.
macports nie zastępuje natywnych pakietów OSX - dostarcza własną wersję - To jest główny powód, dla którego wolę macports niż home-brew, musisz być pewien, czego używasz i zmian Apple w innych momentach niż porty i był znany być za3srs za aktualizacjami w niektórych projektach
mmmmmm
13
Czy możesz podać odniesienie pokazujące, że Macports zastępuje natywne pakiety OS X? O ile wiem, cała instalacja Macports odbywa się w/opt/local
27
Przynajmniej sugerujesz, że MacPorts nadpisuje natywne pakiety OS X. Zamiast „wyjaśniać”, wciąż udając, że nie powiedziałeś, że napisałeś to, co napisałeś, prawdopodobnie powinieneś edytować zdanie, o którym mowa.
Zrelaksowany
13
To zdanie: „Jedną z głównych różnic między homebrew i macports; i dlatego wolę homebrew, ponieważ nie zastąpi on rzeczy, które powinny być instalowane„ natywnie ”w systemie OSX. należy zmienić na „Jedną z głównych różnic między homebrew i macports; i dlatego wolę homebrew, ponieważ homebrew nie instaluje automatycznie równoległych kopii narzędzi i bibliotek, które są już dostarczane przez Apple”.
bgupta
7
MacPorts nie zastępuje natywnych aplikacji, „ogranicza przeniesione oprogramowanie do prywatnego„ piaskownicy ”, który zapobiega jego ingerencji w system operacyjny i oprogramowanie dostarczone przez dostawcę, aby zapobiec ich uszkodzeniu”. - MacPorts Guide, Rozdział 1
jla
23
Obecnie Macports ma o wiele więcej pakietów (~ 18,6 K) niż formuły Homebrew (~ 3,1 K) ze względu na swoją dojrzałość. Homebrew powoli jednak nadrabia zaległości.
Pakiety Macport są zwykle obsługiwane przez jedną osobę.
Macports może przechowywać wiele wersji pakietów, a można je włączać i wyłączać, aby przetestować. Czasami ta lista może ulec uszkodzeniu i trzeba ją ręcznie edytować, aby przywrócić porządek, chociaż nie jest to zbyt trudne.
Obaj menedżerowie pakietów poprosą o regularną aktualizację. Może to zająć trochę czasu.
Uwaga: możesz mieć obu menedżerów pakietów w swoim systemie! To nie jest jedno lub drugie. Brew może narzekać, ale Macports nie.
Ponadto, jeśli masz do czynienia z pakietami python lub ruby, używaj środowiska wirtualnego, o ile to możliwe.
{{{Czasami ta lista może ulec uszkodzeniu i trzeba ją ręcznie edytować, aby wszystko uporządkować, chociaż nie jest to zbyt trudne. }}} Nigdy tego nie widziałem, ale to nie znaczy, że nie jest to możliwe. Jakie były okoliczności? Czy zgłosiłeś błąd ( trac.macports.org )?
LSpice
{{{Obaj menedżerowie pakietów poprosą o regularną aktualizację. Może to zająć trochę czasu. }}} Wydaje się to dziwnym stwierdzeniem. Po kilku latach użytkowania pamiętam tylko aktualizację samego MacPorta kilka razy, a aktualizacja jest raczej szybka. Czy masz na myśli, że same porty muszą być często aktualizowane? Cóż, mogą być, ale myślę, że to dobra rzecz, a nie wada! Warto też zauważyć, że MacPorts nie poprosi o nic - to znaczy, że nie ma dokuczliwości; trzeba poprosić go o out-of-date pakietach.
LSpice
18
Domyślnie Homebrew instaluje pakiety na twoim / usr / local. Polecenia Macport wymagają sudo do zainstalowania i aktualizacji (podobnie do apt-get w Ubuntu).
Ostatnio zrezygnowałem z Ubuntu i lubię korzystać z homebrew (jest prosty i łatwy w użyciu!), Ale jeśli czujesz przywiązanie do korzystania z sudo, Macports może być lepszym sposobem!
Czy mówisz, że homebrew instaluje rzeczy /usr/localbez konieczności sudo?
1
@NgocPham Czy masz do tego referencje?
16
@Keith Ta strona jest niepoprawna. A przynajmniej pomija główną przesłankę. Mówi: „Apple zostawił ten katalog dla nas. Oznacza to, że domyślnie nie ma katalogu / usr / local, więc nie musisz się martwić o zepsucie istniejących narzędzi”. Apple nie wyjechało /usr/localdo Homebrew. Apple pozostawił /usr/local„pliki wykonywalne, biblioteki itp. Nie zawarte w podstawowym systemie operacyjnym”. Oznacza to, że możliwe jest, że narzędzia zainstalowane przed użyciem Homebrew mogły utworzyć /usr/localtakie, że nie można go modyfikować sudo. Nie dyskutują o tym na wiki.
2
@NgocPham Chodzi mi o to, że nie wierzę, że Homebrew może używać /usr/localbez uprawnień roota. Domyślne uprawnienia dla /usrnowej instalacji OS X to właściciel root, bez uprawnień do zapisu dla kogokolwiek innego. Aby nawet stworzyć/usr/local , Homebrew potrzebuje dostępu do roota. (Nie próbuję niczego bronić)
5
@Articuno Myślę, że mam cię teraz. To po prostu stwierdzenie, że homebrewmożna zainstalować bez rzeczy sudo, ponieważ kiedy postawił się, że stosowanesudo , aby pozwolenie na przegranej katalogów tak będzie w stanie nic zrobić wnętrze /usr/localbez wyzwalania hasło. Czy to znaczy, że część „zainstaluj bez hasła” jest nieprawidłowa? Nie wydaje mi się! To prawda, że nadal homebrewbędą mogli dostać rzeczy bez hasła.
Odpowiedzi:
MacPorts to droga.
Jak wskazał @ user475443, MacPorts ma o wiele więcej pakietów. Dzięki naparowi wkrótce znajdziesz się w pułapce, ponieważ potrzebna formuła nie istnieje.
MacPorts to natywna aplikacja: C + TCL. W ogóle nie potrzebujesz Ruby. Aby zainstalować Ruby on Mac OS X może potrzebować MacPorts, więc po prostu iść z DarwinPorts i będziesz szczęśliwy.
MacPorts jest naprawdę stabilny, w ciągu 8 lat nigdy nie miałem z tym problemu i cały ekosystem Unixa się na nim opierał.
Jeśli jesteś programistą PHP, możesz zainstalować ostatnią wersję Apache (Mac OS X używa wersji 2.2), PHP i wszystkie potrzebne rozszerzenia, a następnie uaktualnić wszystko za pomocą jednego polecenia. Zapomnij zrobić to samo z Homebrew.
Grupy wsparcia MacPorts.
Jeśli masz zainstalowany zarówno PHP55, jak i PHP56 (z wieloma różnymi rozszerzeniami), możesz przełączać się między nimi za pomocą jednego polecenia. Wszystkie względne rozszerzenia są częścią grupy i zostaną aktywowane w wybranej grupie: php55 lub php56. Nie jestem pewien, czy Homebrew ma tę funkcję.
Rubiści lubią przepisywać wszystko w Rubim, ponieważ jedyną rzeczą, na którą są swobodnie, jest sam Ruby.
źródło
Zarówno Homebrew, jak i Macports rozwiązują ten sam problem - jest to instalacja typowych bibliotek i narzędzi, które nie są dołączone do systemu OSX.
Zazwyczaj są to biblioteki związane z programowaniem i najczęstszym zastosowaniem tych narzędzi jest dla programistów pracujących na systemie OSX.
Oba wymagają zainstalowanych narzędzi wiersza polecenia xcode (które można pobrać osobno z https://developer.apple.com/ ), a dla niektórych konkretnych pakietów będzie trzeba zainstalować cały IDE xcode.
xcode można zainstalować ze sklepu Mac App Store, jest do pobrania za darmo, ale zajmuje trochę czasu, ponieważ ma około 5 GB (jeśli dobrze pamiętam).
macports jest wersją osx narzędzia portowego od BSD (ponieważ osx pochodzi od BSD, był to naturalny wybór). Dla każdego, kto zna którąkolwiek z dystrybucji BSD, macports poczują się jak w domu.
Główna różnica między homebrew a macports; a powodem, dla którego wolę homebrew, jest to, że nie zastąpi on rzeczy, które powinny być instalowane „natywnie” w systemie OSX. Oznacza to, że jeśli dostępny jest pakiet natywny, homebrew powiadomi Cię zamiast go zastąpić i spowodować problemy w dalszej linii.Instaluje również biblioteki w przestrzeni użytkownika (dlatego nie trzeba używać „sudo” do instalowania rzeczy). Pomaga to również w pozbyciu się bibliotek, ponieważ wszystko znajduje się na dostępnej ścieżce.homebrew cieszy się również bardziej aktywną społecznością użytkowników, a jego pakiety (zwane formułami) są dość często aktualizowane.
Być może powinienem wyjaśnić - nigdzie nie powiedziałem w mojej odpowiedzi, że Macports zastępuje natywne pakiety OSX. Obie instalują elementy osobno.
Homebrew ostrzeże Cię, kiedy powinieneś instalować rzeczy „natywnie” (używając preferowanego instalatora biblioteki / narzędzia) dla lepszej kompatybilności. To miałem na myśli. Będzie również korzystać z tylu lokalnych bibliotek, które są dostępne w OS X. Z wiki :
Opcjonalnie możesz zastąpić wersje dostarczonych macosxów narzędziami homebrew.
źródło
/opt/local
Obecnie Macports ma o wiele więcej pakietów (~ 18,6 K) niż formuły Homebrew (~ 3,1 K) ze względu na swoją dojrzałość. Homebrew powoli jednak nadrabia zaległości.
Pakiety Macport są zwykle obsługiwane przez jedną osobę.
Macports może przechowywać wiele wersji pakietów, a można je włączać i wyłączać, aby przetestować. Czasami ta lista może ulec uszkodzeniu i trzeba ją ręcznie edytować, aby przywrócić porządek, chociaż nie jest to zbyt trudne.
Obaj menedżerowie pakietów poprosą o regularną aktualizację. Może to zająć trochę czasu.
Uwaga: możesz mieć obu menedżerów pakietów w swoim systemie! To nie jest jedno lub drugie. Brew może narzekać, ale Macports nie.
Ponadto, jeśli masz do czynienia z pakietami python lub ruby, używaj środowiska wirtualnego, o ile to możliwe.
źródło
Domyślnie Homebrew instaluje pakiety na twoim / usr / local. Polecenia Macport wymagają sudo do zainstalowania i aktualizacji (podobnie do apt-get w Ubuntu).
Aby uzyskać więcej informacji:
Ta strona sugeruje użycie Hombrew: http://deephill.com/macports-vs-homebrew/
mając na uwadze, że w tej witrynie wymieniono zalety korzystania z Macports: http://arstechnica.com/civis/viewtopic.php?f=19&t=1207907
Ostatnio zrezygnowałem z Ubuntu i lubię korzystać z homebrew (jest prosty i łatwy w użyciu!), Ale jeśli czujesz przywiązanie do korzystania z sudo, Macports może być lepszym sposobem!
źródło
/usr/local
bez konieczności sudo?/usr/local
do Homebrew. Apple pozostawił/usr/local
„pliki wykonywalne, biblioteki itp. Nie zawarte w podstawowym systemie operacyjnym”. Oznacza to, że możliwe jest, że narzędzia zainstalowane przed użyciem Homebrew mogły utworzyć/usr/local
takie, że nie można go modyfikowaćsudo
. Nie dyskutują o tym na wiki./usr/local
bez uprawnień roota. Domyślne uprawnienia dla/usr
nowej instalacji OS X to właściciel root, bez uprawnień do zapisu dla kogokolwiek innego. Aby nawet stworzyć/usr/local
, Homebrew potrzebuje dostępu do roota. (Nie próbuję niczego bronić)homebrew
można zainstalować bez rzeczysudo
, ponieważ kiedy postawił się, że stosowanesudo
, aby pozwolenie na przegranej katalogów tak będzie w stanie nic zrobić wnętrze/usr/local
bez wyzwalania hasło. Czy to znaczy, że część „zainstaluj bez hasła” jest nieprawidłowa? Nie wydaje mi się! To prawda, że nadalhomebrew
będą mogli dostać rzeczy bez hasła.