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?
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?
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.
foo@macpro:~/ port select --summary
Name Selected Options
==== ======== =======
db none db46 none
gcc none gcc42 llvm-gcc42 mp-gcc48 none
llvm none mp-llvm-3.3 none
mysql mysql56 mysql56 none
php php55 php55 php56 none
postgresql postgresql94 postgresql93 postgresql94 none
python none python24 python25-apple python26-apple python27 python27-apple none
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.
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.
/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.
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!
/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.
/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ć)
homebrewmożna zainstalować bez rzeczy sudo, ponieważ kiedy postawił się, że stosowane sudo , 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 homebrew będą mogli dostać rzeczy bez hasła.